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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Помогите, пожалуйста, моей дочери выжить!
благотворительный топик
30 vitvirtual 3784 19.5.2018, 8:30
автор: vitvirtual
Открытая тема (нет новых ответов) Продвигаю страницу по запросу "Как сделать игру". Помогите советом, пожалуйста
Я секу в теме! Но подать статью угодным поисковикам образом не смо
22 coremission 2185 8.5.2018, 12:33
автор: coremission
Открытая тема (нет новых ответов) Помогите с выбором ноута
20 rokot 902 23.4.2018, 12:09
автор: Room
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыПомогите с идеями для форума про успех
Спасибо за каждую идею
43 Zoya83 5164 12.4.2018, 11:42
автор: Zoya83
Открытая тема (нет новых ответов) Лендинг или сайт-визитка для ИП? Помогите определиться
6 Yas18 1136 31.3.2018, 20:57
автор: Yas18


 



RSS Текстовая версия Сейчас: 24.5.2018, 18:25
Дизайн