Японские/китайские адреса электронной почты?
Я делаю сайт, который должен быть полностью unicode.
База данных и т.д. Работают, у меня только небольшая логическая ошибка.
Im, проверяющий мою регистрационную форму с помощью ajax, если поля действительны, в поле электронной почты я проверяю регулярные выражения.
Однако, если у пользователя есть адрес электронной почты, такой как 日本人 @日人 日本人.com, он не наступает.
- Этот тип почтовых адресов существует?
Всегда ли такие адреса электронной почты? (a-z A-Z 0-9) @ (a-z A-Z 0-9). (a-z A-Z 0-9)
Ответы
Ответ 1
В соответствии с RFC 5322 ( "Формат интернет-сообщений" ), раздел 3.4.1 ( "Спецификация аддитора" ) t используйте не символы US-ASCII, такие как те, которые вы указали. Однако такие символы, как...
! # $ % & ' * + - / = ? ^ _ { | } ~
... являются законными, а также полный символ остановки/периода, если только один подряд.
Для получения дополнительной информации см. приведенный выше RFC и статью в Википедии по адресам электронной почты, в частности раздел "синтаксис".
UPDATE
Также есть более новый, хотя и экспериментальный, RFC 5336 (теперь устарел RFC6531), который обрабатывает теперь законные международные домены, содержащие символы UTF-8 и т.д.
Ответ 2
Вы должны быть очень осторожно, когда пытаетесь совместить/проверять адреса электронной почты в регулярном выражении. В некоторых случаях вы отклоняете адреса электронной почты, которые, однако, действительны. В основном это:
Покажите мне одно регулярное выражение, и я покажу вам одно письмо, которое не соответствует.
По этой причине, если я проверяю адреса электронной почты, я использую очень простое регулярное выражение, например [email protected]+(\..+)*
(часть пользователя что-либо, хост-часть получила хотя бы одну точку). Все остальное приводит к ложным срабатываниям и ложным негативам.
Лучше не сопоставлять адреса электронной почты (проверяйте только тривиальные вещи, такие как "@" ), но вместо этого отправляйте вместо них отправку писем.
Ответ 3
Обычно адрес находится в форме
[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)*@[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)+
другими словами \w+(\.\w+)*@\w+(\.\w+)+
. Также на этом сайте есть полезная информация о шаблонах адресов электронной почты:
http://www.regular-expressions.info/email.html
Ответ 4
Похоже, что многие люди не упомянули о существовании проблемы. Люди передо мной дали красивые регулярные выражения, поэтому я не буду повторять их.
Я мало знаю о японской стороне, но, по крайней мере, как родной китайский спикер, который использовал китайский язык для основного интернет-браузера, я никогда не видел адрес электронной почты на китайском языке. Когда-то были домены с китайскими иероглифами. Но я считаю, что это было сделано на стороне DNS, и это был коммерческий пузырь. Теперь вы редко можете видеть домены с китайским персонажем в реальном использовании. Таким образом, адреса электронной почты.