Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Быстрое и простое рег. выражение(корректность емаила) (https://javascript.ru/forum/misc/46333-bystroe-i-prostoe-reg-vyrazhenie-korrektnost-emaila.html)

Boomerml 06.04.2014 10:34

Быстрое и простое рег. выражение(корректность email'a)
 
Знаю, писалось уже тыщу раз... Но мне нужно самый смак..

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

больше х1 символов | '@' | больше x1 символа | точка | больше х1 символа

символ, это конечно eng - цифра или буква ну и всяких там ._-(думаю другие же вроде не используют?)(ну конечно что он может быть только из букв, или только из цифр)

Может вариант и не идеален, но мне кажется этого куда достаточно(ведь всё не учтёж, да и мне кажется что не нужно)
Спасибо! с меня палтишок, отпишу в пм :)

Aetae 06.04.2014 10:51

Сейчас, со всякими этими нац. доменами символы могут быть какими угодно на самом деле.
Как то так:):
/^[^@]+@[^@]+\.[^@]{2,4}$/

jsnb 06.04.2014 11:03

Цитата:

Сообщение от Aetae (Сообщение 306370)
Сейчас, со всякими этими нац. доменами символы могут быть какими угодно на самом деле.
Как то так:):
/^[^@]+@[^@]+\.[^@]{2,4}$/

Про пробелы забыли:

var regexp = /^[^@]+@[^@]+\.[^@]{2,4}$/
str = 'sdasda asdsa adaasddsa@adsadas.las';
alert( str.match(regexp) ); '' //'sdasda asdsa adaasddsa@adsadas.las'
alert( regexp.test(str) ); //true

Да и под домен первого уровня маловато символов, туда всякие travel и museum не влезут. Хотя кто их для почты юзает...

В общем, если исключить пробелы, то будет так:
/^[^@\s]+@[^@\s]+\.[^@\s]{2,4}$/

А вообще зачем изобретать велосипеды, когда этих валидационных регулярок в сети как собак нерезанных?

Boomerml 06.04.2014 11:46

беда

при asd%40asd.kz можно так? или лучше преобразовать...? и чем(не сталкивался..)?
var regexp = /^[^@]+%40[^@]+\.[^@]{2,4}$/

насчёт остального вроде корректно...

jsnb 06.04.2014 11:58

Цитата:

Сообщение от Boomerml (Сообщение 306377)
или лучше преобразовать...? и чем(не сталкивался..)?

alert( decodeURIComponent('asd%40asd.kz') );

http://javascript.ru/decodeURIComponent

Boomerml 06.04.2014 12:12

jsnb
Только нашёл stackoverflow, и тут Вы :)

Человеческое спасибо :) пошёл читать...

Вопрос закрыт!


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