Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема с регулярными выражениями (https://javascript.ru/forum/misc/25384-problema-s-regulyarnymi-vyrazheniyami.html)

user_i 03.02.2012 16:35

Проблема с регулярными выражениями
 
Изучаю регулярные выражения в JS.

Проверка e-mail
var regex = /^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$/i;

regex.test("user@name.net") = false
regex.test("user@na.net") = true
regex.test("user@namename.net") = true
regex.test("user@namenamem.net") = false

Странно!!! Подскажите, пжл, в чем проблема?
Браузеры: Chrome, FF

Заранее благодарю

user_i 05.02.2012 18:57

Maxmaxmaximus, благодарю за ответ! Разобрался с регулярными выражениями. Вы мне хороший вариант дали, но мне нужно было именно ту регу исправить. Нашел ошибки, исправил. Вот работающая версия

/^(((^|[-.]?)[0-9a-zA-Z]+)+@([0-9a-zA-Z]+[-]?[0-9a-zA-Z]+[.])+[a-zA-Z]{2,9})$/i
или
/^([0-9a-zA-Z]+([-.]?[0-9a-zA-Z]+)+@([0-9a-zA-Z]+[-]?[0-9a-zA-Z]+[.])+[a-zA-Z]{2,9})$/i

Детали
1) /^(
2) ( (^|[-.]?) [0-9a-zA-Z]+ )+
3) @
4) ( [0-9a-zA-Z]+ [-]? [0-9a-zA-Z]+ \.)+
5) [a-zA-Z]{2,9}
6) )$/i

1)Начало строки
2)Логин
3)(собака)
4)Домены 2-го и далее уровней
5)Домен 1-го уровня
6)Конец строки, игнорировать регистр

Gozar 05.02.2012 19:06

A-Z убери или модификатор i (не зависит от регистра) убери в конце для начала.

user_i 06.02.2012 17:26

Цитата:

Сообщение от Gozar
A-Z убери или модификатор i (не зависит от регистра) убери в конце для начала.

Спасибо за уточнение. Да, модификатор не нужен в этом случае.


Часовой пояс GMT +3, время: 18:24.