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



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Регулярное выражение
pingvin_hb
pingvin_hb
Topic Starter сообщение 7.5.2010, 13:36; Ответить: pingvin_hb
Сообщение #1


Почему-то на двух серверах не работает регулярное выражение :
[PHP]<?php
function checklogin4($login){
if (preg_match("/[a-z]+[a-z]{1,20}/i",$login)) return 1;
else return -1; }

function checklogin5($login) {
if (ereg("/[a-z]+[a-z]{1,20}/",$login)) return 1;
else return -1; }

function checklogin6($login) {
if (ereg("[a-z]+[a-z]{1,20}",$login)) return 1;
else return -1; }


$nick='1topЫыБбola';
if (checklogin4($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin4(\$nick)=".checklogin4($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";
$nick='topola';
if (checklogin4($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin4(\$nick)=".checklogin4($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";
echo "<br>";
$nick='1topЫыБбola';
if (checklogin5($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin5(\$nick)=".checklogin5($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";

$nick='topola';
if (checklogin5($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin5(\$nick)=".checklogin5($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";

echo "<br>";
$nick='1topЫыБбola';
if (checklogin6($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin6(\$nick)=".checklogin6($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";

$nick='topola';
if (checklogin6($nick)) echo "Символы в НИКе нормальные. \$nick=$nick checklogin6(\$nick)=".checklogin6($nick)."<br>";
else echo "В НИКе есть недопустимые символы \$nick=$nick<br>";

?>
[/PHP] Смысл регулярного выражения: проверить логин, где первая должна быть буква и не должно быть кириллицы.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexflasher
alexflasher
сообщение 7.5.2010, 16:28; Ответить: alexflasher
Сообщение #2


Работает :)
Другое дело, что оно проверяет не то, что нужно )
/[a-z]+[a-z]{1,20}/i

Проверяет, чтобы в тексте был один и более символов a-z, за которым следует от 1 до 20 символов a-z.
В тестируемых строках это:
1topЫыБбola
topola

Необходимо сделать привязку к границам строки
/^[a-z]+[a-z]{1,20}$/i


PS: также есть еще косяки:
этот реджекс не пропустит цирфы вообще.
А также, насколько я знаю, квантификатор {1,20} не будет ограничивать строку 20 символами, т.к квантификатор + сожрет их раньше

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Регулярное наполнение новостного сайта провинциального города
15 4enki 3710 10.3.2016, 22:39
автор: 4enki
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРезультативные прогоны Хрумером по свежесобранным базам для поднятия позиций в Yandex и Google (Выдача, тИЦ, PR)… Регулярное обновление баз.
275 Kroner 147391 23.4.2015, 11:57
автор: Kroner
Открытая тема (нет новых ответов) регулярное выражение
13 Panich 8510 27.5.2011, 18:15
автор: -Apay-


 



RSS Текстовая версия Сейчас: 19.4.2024, 21:32
Дизайн