2011-04-17 20 views
11

Estoy creando un sitio que debe ser completamente unicode. Base de datos, etc. están funcionando, solo tengo un pequeño error de lógica. Estoy probando mi formulario de registro con ajax si los campos son válidos, en el campo de correo electrónico lo compruebo con expresiones regulares.¿Direcciones de correo electrónico japonesas/chinas?

Sin embargo, si un usuario tiene una dirección de correo electrónico como 日本人 @ 日人 日本人 .com no está llegando.

  1. ¿Este tipo de direcciones de correo existen?

¿Las direcciones de correo electrónico son siempre así? (Az AZ 0-9) @ (az AZ 0-9). (Az AZ 0-9)

+0

http://blog.icann.org/2010/05/idn-cctlds/ – Treffynnon

Respuesta

6

Según RFC 5322 ("Internet Message Format"), sección 3.4.1 ("Dir-Spec Especificación ") no puede usar caracteres que no sean US-ASCII como los que ha enumerado. Sin embargo, personajes como ...

! # $ % & ' * + -/= ?^_ { | } ~ 

... son legales, así como el carácter completo de parada/período tan largo como sólo hay una en una fila.

Para obtener más información, consulte el RFC anterior y, de hecho, the Wikipedia article on email addresses, específicamente la sección "sintaxis".

ACTUALIZACIÓN

También hay una nueva, aunque sea experimental, RFC 5336 (ahora obsoleto en RFC6531) que se ocupa de los dominios internacionales ahora legítimos que contienen caracteres UTF-8, etc.

3

Por lo general, la dirección se encuentran en el formulario

[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)*@[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)+ 

en otras palabras \w+(\.\w+)*@\w+(\.\w+)+. Además, este sitio tiene información útil sobre patrones de dirección de correo electrónico:

http://www.regular-expressions.info/email.html

4

Usted debe ser muy cuidado cuando se intenta emparejar/validar las direcciones de correo electrónico en una expresión regular. En algunos casos, rechazas direcciones de correo electrónico que, sin embargo, son válidas. Básicamente es:

Muéstrame una expresión regular y te muestro un correo electrónico que no coincide.

Por esa razón, si puedo comprobar direcciones de correo electrónico que utilizo una expresión regular muy simple como [email protected]+(\..+)* (usuario parte nada, parte de máquina tiene al menos un punto). Cualquier otra cosa da como resultado falsos positivos y falsos negativos.

Es mejor no hacer coincidir las direcciones de correo electrónico (solo revise cosas triviales como "@"), sino que envíe correos electrónicos opcionales.

+0

+1 Tenemos que estar de acuerdo, el enfoque de validación y opt-in "loose" es una solución más elegante. –

0

Parece que no mucha gente mencionó el problema de la existencia. Las personas antes que yo han dado bellas expresiones regulares, así que no las repetiré.

No sé mucho sobre el lado japonés, pero al menos como hablante nativo de chino que ha estado usando el chino para el idioma principal de navegación en Internet, nunca he visto una dirección de correo electrónico en chino.Hubo una vez un tiempo en que los dominios con caracteres chinos son populares. Pero creo que se logró en el lado del DNS y fue una burbuja comercial. Ahora puedes raramente ver dominios con caracteres chinos en uso real. También lo son las direcciones de correo electrónico.

Cuestiones relacionadas