Лучшее регулярное выражение для валидации email в web формах
/[^@]+@[^@\.]+\.[^@]+/
Оговорка “на клиенте” сделана не просто так. Задача валидации на клиенте – подсказать пользователю, где он ошибся в написании email-а. Важно случайным образом не запретить пользователю с непредусмотренным емейлом воспользоваться формой. Учитывая то, какие варианты емейла могут быть (неожиданные домены, появляющиеся по пучку каждый месяц, ip адреса в качестве домена, и символы точки и симполы +, и другие неизвестные широкому обывателю вещи), напрашивается вывод, что лучшая валидация проверит емейл на наличие текста вида текст-собачка-текст-точка-текст.
я бы немного проапдейтил: /[^@]+@[^@.]+\.[^@.]+/
Согласен, что можно не экранировать точку. Однако в последнем блоке точка не нужна (тогда под регулярку не будут попадать емейлы на доменах второго уровня: http://regexr.com/3asag
Итого: /[^@]+@[^@.]+\.[^@]+/
согласен. тогда можно еще добавить начало-конец строки, и будет идеально :)
/^[^@]+@[^@.]+\.[^@]+$/
Вообще не было надобности если честно ни разу на стороне клиента. Обычно лучше для ввода использовать нативный type=“email”.
Ты прав насчет использования type=“email”, у этого атрибута хорошая поддержка http://caniuse.com/#search=email.