X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> Помогите с регулярными выражениями
vitek_gagra
vitek_gagra
Topic Starter сообщение 17.8.2012, 0:17; Ответить: vitek_gagra
Сообщение #1


Участник
***

Группа: User
Сообщений: 136
Регистрация: 4.11.2011
Из: Гагра
Поблагодарили: 27 раз
Репутация:   3  


Здравствуйте, помогите с регулярными выражениями. Как сделать при регистрации проверку логина. Что бы можно было логин писать либо Русскими символами либо латинскими. Что бы запретить использование использование одновременного использования в нике разных языков.


--------------------
Отдых в Абхазии
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 17.8.2012, 0:33; Ответить: Pepper
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 393
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


Вам сюда http://www.maultalk.com/topic130282.html


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oldzas
oldzas
сообщение 17.8.2012, 8:01; Ответить: oldzas
Сообщение #3


Бывалый
****


Группа: Banned
Сообщений: 279
Регистрация: 16.5.2011
Поблагодарили: 25 раз
Репутация:   1  


Чуть ниже в этой ветке - человек преедлагал бесплатную помощь - напишите ему.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serendipity
serendipity
сообщение 17.8.2012, 14:10; Ответить: serendipity
Сообщение #4


Частый гость
**


Группа: User
Сообщений: 52
Регистрация: 8.7.2011
Поблагодарили: 9 раз
Репутация:   1  


Что-то в таком духе:

if (preg_match('/[a-z]+/i', $input) && preg_match('/[а-я]+/i', $input)) {
// do smth
}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
simply_sash
simply_sash
сообщение 17.8.2012, 14:48; Ответить: simply_sash
Сообщение #5


Участник
***

Группа: User
Сообщений: 228
Регистрация: 26.8.2011
Поблагодарили: 94 раза
Репутация:   21  


serendipity, не прокатит хотя бы по тому, что в условии ИЛИ, а вы используете &&. Да и дважды вызывать preg_match() если можно проверить за один проход не разумно. Я бы сделал так:
<?php
    $user_login = $_GET["input"];
    if(preg_match("/((^[a-z]+$)|(^[а-я]+$))/u",$user_login))
    {
        echo $user_login;
    }
    else
    {
        echo "Некорректное имя пользователя";
    }
?>


Сообщение отредактировал simply_sash - 17.8.2012, 14:48
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serendipity
serendipity
сообщение 17.8.2012, 15:08; Ответить: serendipity
Сообщение #6


Частый гость
**


Группа: User
Сообщений: 52
Регистрация: 8.7.2011
Поблагодарили: 9 раз
Репутация:   1  


(simply_sash @ 17.8.2012, 14:48) *
serendipity, не прокатит хотя бы по тому, что в условии ИЛИ, а вы используете &&. Да и дважды вызывать preg_match() если можно проверить за один проход не разумно.


Суть одна и та же, в вашем коде фактически вызов поиска будет происходить дважды при ложном результате первого поиска smile.gif

И да, мой код рабочий. Сначала засомневался, пришлось открывать редактор, чтобы проверить smile.gif

Сообщение отредактировал serendipity - 17.8.2012, 15:09
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oldzas
oldzas
сообщение 17.8.2012, 15:23; Ответить: oldzas
Сообщение #7


Бывалый
****


Группа: Banned
Сообщений: 279
Регистрация: 16.5.2011
Поблагодарили: 25 раз
Репутация:   1  


Сильно не увлекайтесь) главное не забудьте сделать проверку на наличие такого же логина в бд, меня всегда радовала проверка на js что бы сократить время для пользователя.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serendipity
serendipity
сообщение 17.8.2012, 15:26; Ответить: serendipity
Сообщение #8


Частый гость
**


Группа: User
Сообщений: 52
Регистрация: 8.7.2011
Поблагодарили: 9 раз
Репутация:   1  


(oldzas @ 17.8.2012, 15:23) *
Сильно не увлекайтесь) главное не забудьте сделать проверку на наличие такого же логина в бд, меня всегда радовала проверка на js что бы сократить время для пользователя.


А иногда разрешаю и такие логины. Только раскрашиваю латинские буквы в красный цветsmile.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
simply_sash
simply_sash
сообщение 17.8.2012, 15:34; Ответить: simply_sash
Сообщение #9


Участник
***

Группа: User
Сообщений: 228
Регистрация: 26.8.2011
Поблагодарили: 94 раза
Репутация:   21  


(serendipity @ 17.8.2012, 14:08) *
пришлось открывать редактор
Не нужно открывать редактор, что бы понять, что оператор && требует, чтобы оба условия выполнялись! У вас в $input одновременно содержаться только латинские и только русские символы? К тому же в вашей регулярке нет символа начала (^) и символа конца строки ($), а это означает, что preg_match('/[a-z]+/i', $input) сработает, если в $input есть хотя бы одна буква из латинского алфавита в любом месте.
(serendipity @ 17.8.2012, 14:08) *
И да, мой код рабочий
Это не так
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serendipity
serendipity
сообщение 17.8.2012, 15:45; Ответить: serendipity
Сообщение #10


Частый гость
**


Группа: User
Сообщений: 52
Регистрация: 8.7.2011
Поблагодарили: 9 раз
Репутация:   1  


(simply_sash @ 17.8.2012, 15:34) *
Это не так


<?php

$input1 = 'Hello ворлд';
$input2 = 'hello world';
$input3 = 'хелоу ворлд';

if (fail($input1)) print $input1 . ' > Ай-яй-яй!';
if (fail($input2)) print $input2 . ' > Ай-яй-яй!';
if (fail($input3)) print $input3 . ' > Ай-яй-яй!';

function fail($input) {
    return preg_match('/[a-z]+/i', $input) && preg_match('/[а-я]+/i', $input);
}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите выбрать программу
Помогите выбрать программу
11 impak 1353 11.12.2017, 13:11
автор: Mikki
Открытая тема (нет новых ответов) Помогите найти плагин на WP
Отзывы с профилей соц сетей
1 SEOMR 447 30.11.2017, 7:18
автор: Nell
Открытая тема (нет новых ответов) Помогите найти проблему
Долгий ответ сервера
6 maxim1249 700 29.11.2017, 17:27
автор: genjnat
Открытая тема (нет новых ответов) Помогите оценить новотник. Плиз
1 Alex-777 530 29.11.2017, 7:18
автор: grumdas
Открытая тема (нет новых ответов) Помогите с неймингом для сборника советов
советы по разработки и жизни
11 coremission 1889 15.11.2017, 22:23
автор: rogefer


 



RSS Текстовая версия Сейчас: 17.12.2017, 12:49
Дизайн