Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, обучение 
:(
    Опции темы
PARROT
Дата 15.6.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.
Исправь.

Я бы так написала:
Код

if(!eregi("^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[\w]+\.[\w]{0,3}$",$email))
    {
        $email_error="<center><h3><font color=red>Некорректный e-mail!</font></h3></center>";
        echo "$email_error";
        exit;
    }

Зачем @ одно вхождение, если понятно, что собак больше чем одной быть не может.
Защищать точку двумя слэшами не нужно.



Это сообщение отредактировал(а) PARROT - 15.6.2005, 17:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



1) У меня просто на локалке при тестировании [a-z0-9_] неправильно работает, поэтому я и оставил так.
2) А разве это POSIX? Это RegEX. Я по учебнику делал (фигурные скобки, то есть, по учебнику), там это называется RegEx.
А в остальном правильно?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 15.6.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]
Так как ты пишешь, это POSIX, отставь его в сторону и почитай тему с первого сообщения, об этом уже говорилось.
Мой тестер нашел твое мыло только вот до сюда 1538733@t и все, далее ошибка.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 15.6.2005, 18:08)
А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]

На самом деле надо [A-Z0-9-_] при i в модификаторах или [A-Za-z0-9-_] без модификатора i.
PM ICQ   Вверх
skalex
Дата 15.6.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



sim7, я вот такой regexp использую для проверки корректности e-mail:
Код
<?php
preg_match('/[0-9A-Za-z._-]+@([0-9a-z_-]+\.)+[a-z]{2,4}/', $email);
?>

PM   Вверх
Mal Hack
Дата 15.6.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Mace
________@_________.com - пропустит smile
ЗЫ: тыже вроде давал тут на форуме нормальные рэги smile
PM ICQ   Вверх
skalex
Дата 15.6.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Да, вот тут хоршая дискуссия была : http://forum.vingrad.ru/index.php?showtopic=46596
smile
PM   Вверх
Irokez
Дата 15.6.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 16:42)
вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.

и
Цитата(PARROT @ 15.6.2005, 16:42)
Я бы так написала:

Цитата(PARROT @ 15.6.2005, 16:42)
eregi...

smile
PM   Вверх
PARROT
Дата 15.6.2005, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Irokez, я функции еще не трогала. Толку хвататься за функции, если не можешь, не понимаешь как писать рег?
Я повторила условие sim7. Исправила его рег.
Предпочитаю учиться постепенно, а не хвататься сразу за все.
Так толку не будет. Тем более меня никто не гонит.

eregi - совпадение с регулярным выражением без учёта регистра символов.
И че не так? Знак вопроса перед... А зачем знак вопроса, действительно?

Лучше использовать preg_match - выполняет подстановку регулярного выражения, которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().

Это сообщение отредактировал(а) PARROT - 15.6.2005, 20:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Irokez
Дата 15.6.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 19:54)
eregi - совпадение с регулярным выражением без учёта регистра символов.

не с любым регулярным выражением, а POSIX совместимым
PM   Вверх
PARROT
Дата 15.6.2005, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Irokez, давай лучше с тобой поговорим о под выражениях?

Я с POSIX не дружу! smile

Это сообщение отредактировал(а) PARROT - 15.6.2005, 20:05


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
skalex
Дата 16.6.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Как то раз нашел такой интересный момент в регулярных выражениях!
Например, последовательность символов [A-Za-z] можно кратко записать как [A-z].
Но как оказалось, в эту последовательность включается еще и символ подчеркивания "_" !
Показательный пример:
Код
<?php
echo (preg_match('%^[A-z]*$%', "A_b_C")) ? 'найдено' : 'ненайдено';
?>

PM   Вверх
PARROT
Дата 16.6.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так ясно же написано, что [\w], что [a-zA-Z0-9_] включают в себя любой алфавитно-цифровой символ и символ подчеркивания.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
skalex
Дата 16.6.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Ясно написано для \w ... Я говорил о [A-z]. В эту последовательность цифры не включены.
PM   Вверх
PARROT
Дата 16.6.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



[a-zA-Z0-9_] является шаблоном, в который входит символ подчеркивания.
Шаблон, это принятый образец, штамп.
Стоит ли его менять?

Другое дело набор. smile




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.