Это немного придирчиво, но, как уже упоминалось в emix, регулярное выражение валидации, используемое aurelia-validation
, в настоящее время является широко принятым стандартом, как определено WHATWG . Это то же регулярное выражение, что описано в MDN и w3.org .
Mozilla , кажется, следует этой спецификации для проверки input type="email"
, по крайней мере. Я не смог найти никаких официальных источников о Chrome или Edge.
JavaScript-версия этого регулярного выражения:
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
Проще говоря, это означает:
- (обязательно) перед символом
@
, любым количеством буквенно-цифровых символов и (определенных) символов
- (обязательно) после символа
@
, от 1 до 63 буквенно-цифровых символов или дефисов (и не может начинаться или заканчиваться дефисом)
- (необязательно) то же, что 2 (но начинается с точки), повторяется любое количество раз
Если вы хотите ограничить эту проверку сообщениями электронной почты, которые маршрутизируются в Интернете, просто измените звездочку *
в конце регулярного выражения на плюс +
. Это делает регулярное выражение идентичным, за исключением того, что теперь должен быть хотя бы один сегмент, начинающийся с точки.
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/