Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   регулярные выражения (http://www.flasher.ru/forum/showthread.php?t=211480)

razerw 09.09.2015 13:06

регулярные выражения
 
Добрый день, у меня есть строка регуляки которая якобы проверяет на соответствие емаил адрес.
/^(\w|[\.-])+@((\w|-)+\.)+\w{2,4}+$""^(\w|[\.-])+@((\w|-)+\.)+\w{2,4}+$/

помогите мне пожалуйста разобрать и понять что в этой строке проверяется

caseyryan 09.09.2015 13:12

/ в начале и вконце / - это просто границы регулярки
дальше так:
^ начало строки
дальше в скобках класс
\w соответствие любой букве латинского алфавита
[\.-] что-то, либо точка, либо дефиз
+ после класса значит "хотя бы один"
Сооответственно ^(\w|[\.-])+ значит что после начала строки может быть хотя бы одна буква, вместо которой или после которой так же может быть точка или дефиз (может и не в единственном экземпляре)
после которой идет символ собачки @ после нее опять хотя бы одна буква или дефиз, за которой обязательно точка.
\w{2,4}+$ это значит что должно быть от 2 до 4 букв обязательно (+), и после этого конец строки $
Правда не понятно зачем конструкция задвоена.

п.с. Это не очень надежная регулярка. Такие домены как com.sg, или com.ua уже отсекутся

razerw 09.09.2015 14:16

эта регулярка даже @yandex.ru отсекает

udaaff 09.09.2015 18:55

Копипасту, видимо, убрать надо.
Точку внутри символьного класса экранировать не надо. И условие лишнее. Группу сбора лучше исключить.
/^[\w.-]+@(?:[\w-]+\.)+\w{2,4}+$/


Часовой пояс GMT +4, время: 06:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.