Японские/китайские адреса электронной почты?

Я делаю сайт, который должен быть полностью 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, и это был коммерческий пузырь. Теперь вы редко можете видеть домены с китайским персонажем в реальном использовании. Таким образом, адреса электронной почты.