Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помогите с регуляркой (https://javascript.ru/forum/css-html/14450-pomogite-s-regulyarkojj.html)

tazododu 17.01.2011 11:29

Помогите с регуляркой
 
всем привет! использовал вот такую функцию для проверки email
function check_mail(mail) {
	return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(mail);
}


обнаружился один нехороший баг, функция не пропускает адреса вида mail@i.ua

у самого не получается написать регулярку для проверки с таким условием, поэтому прошу помочь мне.

ksa 17.01.2011 12:45

tazododu, оно?
http://javascript.ru/forum/misc/9409...yrazhenie.html

ksa 17.01.2011 13:06

Вот тут предлагают такое решение...

var email='mail@i.ua'
var reg = /^(([a-zA-Z0-9]|[!#$%\*\/\?\|^\{\}`~&'\+=-_])+\.)*([a-zA-Z0-9]|[!#$%\*\/\?\|^\{\}`~&'\+=-_])+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]+$/i  
if (!reg.test(email)) {
    alert ('Пожалуйста, введите корректный электронный адрес.');
} else {
    alert('Ok')
}

x-yuri 17.01.2011 13:32

а чё, мне нравится

ksa 17.01.2011 13:36

x-yuri, да ты гурман! :lol:

tazododu 17.01.2011 18:36

ksa
спасибо за ссылку на хороший ресурс. кстати, ваша регулярка пропускает майлы вида qqq@aa.r, sergey@0.1 Которые тоже являются не верными.

x-yuri
это конечно круто ))

давайте попробуем допилить все-таки мою регулярку...

tazododu 17.01.2011 18:39

Цитата:

Вот тут предлагают такое решение...
этот вариант тоже не хочет пропускать mail@i.ua

Aetae 17.01.2011 18:51

Понапридумывали фигни всякой, а потом удивляются.)

Имхо
/^[\w-.]+@[\w-.]+$/
и не парить мозг.

А все эти мегауточнения всё равно не имеют смысла, кому неохота писать мыло - его не напишет: aaa@bbb.cc и все дела.

\upd вон даж движок форума схавал)

Kolyaj 17.01.2011 19:15

Aetae,
если вы сокращаете проверку, то сокращайте нормально. Ваша регулярка не пропускает a+a@yandex.ru, я таким разработчикам лучи ненависти посылаю.

Aetae 17.01.2011 19:21

Цитата:

Сообщение от Kolyaj (Сообщение 88366)
Aetae,
если вы сокращаете проверку, то сокращайте нормально. Ваша регулярка не пропускает a+a@yandex.ru, я таким разработчикам лучи ненависти посылаю.

На яндексе вы не сможете зарегать почту a+a) (как и на всех почтовиках, что я встречал)


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