Foros del Web » Programando para Internet » Javascript »

Validar email correctamente

Estas en el tema de Validar email correctamente en el foro de Javascript en Foros del Web. Alguien me puede ayudar a crear una expresion para validar cualquier formato de email valido, cosas como por ejemplo que empiece con letras, etc... las ...
  #1 (permalink)  
Antiguo 06/09/2016, 11:41
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Validar email correctamente

Alguien me puede ayudar a crear una expresion para validar cualquier formato de email valido, cosas como por ejemplo que empiece con letras, etc... las expresiones que vi no validan un correo completamente valido.
Gracias de antemano, saludos.
  #2 (permalink)  
Antiguo 06/09/2016, 12:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Utiliza la expresión regular que emplea el <input type="email" /> de HTML5:

Código RegExp:
Ver original
  1. /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

Fuente

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/09/2016, 14:38
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

hola Alexis88, muchas gracias por la expresion, pero me da el siguiente problema al ponerla en una variable js.

Código Javascript:
Ver original
  1. expr=/^[a-zA-Z0-9.!#$%&&#8217;*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

aunque de todas formas esta expresion permito insertar al principio un caracter que no sea letra, creo que ningun correo puede empezar por un caracter que no sea letra, si estoy equivocado me gustaria saber la respuesta.
saludos

Última edición por azaz; 06/09/2016 a las 14:55
  #4 (permalink)  
Antiguo 06/09/2016, 23:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Según la IETF (lee la sección Restrictions on email addresses), el único carácter que no está permitido al inicio de una dirección de correo electrónico es el punto; además, solo puede haber 64 caracteres antes del @ que separa al nombre del correo —o local part— del nombre del dominio.

Por otra parte, olvidaste indicar el problema que se te presenta, pues, al menos a mí no me dio problema alguno.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 07/09/2016, 02:50
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

Hola Alexis88, gracias nuevamente por tu interes en ayudarme.
el error que me da en la barra invertida
Código Javascript:
Ver original
  1. expr=/^[a-zA-Z0-9.!#$%&&#8217;*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

asi no me da:
Código Javascript:
Ver original
  1. expr=/^[a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

volviendo a la funcionalidad de la expresion tengo ahora las siguientes dudas, si esta prohibido poner un . al principio porque la validacion de html5 no valida eso, ni tampoco que tenga un max de 64 caracteres?

que expresiones usais vosotros para esto, ya que no quiero que nadie ponga un formato no valido.
me gustaria saber que expresion usa facebook para validar su correo?
saludos

Última edición por azaz; 07/09/2016 a las 03:44
  #6 (permalink)  
Antiguo 07/09/2016, 09:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Particularmente, te recomiendo seguir el formato indicado por la IETF pues es el formato establecido para ser usado por todos los usuarios de internet. Y, en efecto, el filtro de HTML5 no se ajusta por completo a la regla de la IETF, por lo que, si deseas, puedes también establecer tus reglas o seguir las existentes.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 07/09/2016, 11:01
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

Como podria adaptar la expresion regular para adaptarla a la IETF?
No tengo mucha idea de expresiones regulares.
Saludos
  #8 (permalink)  
Antiguo 07/09/2016, 16:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Creo que lo mejor será que decidas entre elaborar tu expresión regular o usar la de la IETF; puesto que, si elaboras una "parecida" a la de la IETF, seguirá siendo distinta a la oficial.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 08/09/2016, 01:29
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

Cita:
Iniciado por Alexis88 Ver Mensaje
Creo que lo mejor será que decidas entre elaborar tu expresión regular o usar la de la IETF; puesto que, si elaboras una "parecida" a la de la IETF, seguirá siendo distinta a la oficial.
Hola y donde esta la expresion regular de la IETF?
Saludos
  #10 (permalink)  
Antiguo 08/09/2016, 08:40
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Me expresé mal. Lo que quise decir es que puedes elaborar una expresión regular que cumpla con los lineamientos establecidos por la IETF, puesto que, en su página oficial, no muestran una expresión regular en concreto; pero como dices que no tienes muchos conocimientos sobre expresiones regulares, tienes dos caminos; o copias una expresión existente, como la de HTML5, o estudias sobre el tema y elaboras la tuya.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 08/09/2016, 09:04
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

Cita:
Iniciado por Alexis88 Ver Mensaje
Me expresé mal. Lo que quise decir es que puedes elaborar una expresión regular que cumpla con los lineamientos establecidos por la IETF, puesto que, en su página oficial, no muestran una expresión regular en concreto; pero como dices que no tienes muchos conocimientos sobre expresiones regulares, tienes dos caminos; o copias una expresión existente, como la de HTML5, o estudias sobre el tema y elaboras la tuya.

Hola ya me lo imagine, intente eleborar una expresion con esas caracteristicas pero no acaba de funcionar pongo lo que tengo por si alguien me puede ayudar.

Código Javascript:
Ver original
  1. var expr=/^([a-zA-Z0-9!#$%&'*+-\/=?^_`{|}~]{1})+([a-zA-Z0-9!#$%&'*+-\/=?^_`.{|}~]{1,63})+(@[a-zA-Z0-9-_]{3,255})+(.[a-zA-Z]{2,12})+(.[a-zA-Z]{2,12})?$/;

intento que el comienzo del emial no empieze por un punto y esto ya no funciona despues tampoco se como puedo hacer que no termine en un punto la parte local?
esto me dice que es correcto:
[email protected]

alguna ayuda con la expresion?
saludos
  #12 (permalink)  
Antiguo 08/09/2016, 11:28
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar email correctamente

prueba a ver que tal con este
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #13 (permalink)  
Antiguo 09/09/2016, 02:36
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Validar email correctamente

Cita:
Iniciado por IsaBelM Ver Mensaje
Hola gracias IsaBeIM, estube mirando esa funcion y parece que tiene buena pinta.Aunque quiero tenerlo todo en una expresion sin mas. Encontre esta expresion pero me faltaria ponerle limitaciones de max min de caracter a la parte local, servidor y extension.
Alguien podria ayudarme con eso?
Código Javascript:
Ver original
  1. /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i

Última edición por azaz; 09/09/2016 a las 03:55
  #14 (permalink)  
Antiguo 09/09/2016, 08:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar email correctamente

Solo necesitas añadir un par de llaves a la derecha de la local part y otro par a la derecha de la parte del dominio. Dentro de cada par, debes colocar un rango de números —aunque también puede bastar un solo número— que será el que limitará el mínimo y máximo de caracteres para cada parte, separándose con comas al par de números que delimitan el rango.

Código RegExp:
Ver original
  1. localpart{mínimo,máximo}@domainpart{mínimo,máximo}

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: correctamente, email
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:27.