The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Тематический каталог: Регулярные выражения в Javascript (regex javascript web)"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "поправьте ошибки" +/
Сообщение от master Zelenkin (?), 15-Май-09, 02:12 
эй, взаимоуважатели, заместо ругаться, не плодите дезинформацию другим детям, а исправляйте:

/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i

этот регексп нерабочий, причем жёстко.

Дайте ему вот это:

Vasiliy.Lokhankin@my.mail-zanzibar.info

он не примет, а мыло корректное.
а это примет:

----paraboloid@my.Fu@#$%$%^*mail.com=Wrong@!

просто он зацепится не с начала и не до конца строки, да и точка в регекспе выше в среднем []-блоке позволяет быть любым символам, так что ой.

Где-то так, вобщем:

1. во втором блоке так точка не отрицается (если я правильно понял неправильный ход мыслей... sic!) - а если неправильно - то причём там крышка (^)? Отрицается любой символ? Гы. Даже если бы работала эта конструкция (отрицание со средины регекспа), то... Впрочем, "на этом мысль останавливается".

2. Если убрать точку ("всё подряд") в среднем блоке - матч сработает только на доменах 2го уровня. Да и то на 2-3 буквенных в конце (а где инфо? моби? нейм? етц...) - правда, это достаточно свежий апдейт, но от этого регесп не стаёт рабочим.

3. нет ограничения у регекспа по бокам. То есть он может СОВПАСТЬ внутри строки, которая будет окружена мусором.

4. в емейле в имени может быть точка, и точка!

5. с какой радости подчеркивания пошли в домены, и где дефисы в доменах?

т.е. если исправить эти "сам умею сочинил" в "и я сам умею сочинил-2", то выйдет:

/^[0-9a-z\-\._+]+@(?:[0-9a-z\-]+\.)+[a-z]+$/i

но и достоверность этого сомнительна - в RFC сначала надо прочитать стандарты, чем умничать. Например, формат имени в емейле более широкий, чем у домена - и могут быть ещё разрешённые символы (подчеркивание, плюс, ещё что-то, да и то по разным стандартам по-разному).

Кроме того этот регексп не подтвердит правильность емейлов:

"Василий Квасилий" <kvasil@mail.ru>
хотя оно корректно, и
"MyOldMail:<i@be.there>" <big@but.very.small.com>

а вдруг ещё кавычки могут быть вложеные, заслешованые ;-)

так что писать и читать книжечки ещё придётся.

Мудрость, она как и тупость, безгранична - накапливать можно вечно ;).

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Тематический каталог: Регулярные выражения в Javascript (regex javascript web), auto_topic, 19-Авг-07, 19:17  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру