Foros del Web » Programando para Internet » Javascript »

Script no valida correo en IE

Estas en el tema de Script no valida correo en IE en el foro de Javascript en Foros del Web. Hola a todos, tengo un script para validar correos electrónicos, y funciona en todos los navegadores exepto en IE. El problema viene cuandop trato de ...
  #1 (permalink)  
Antiguo 17/08/2011, 11:41
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Script no valida correo en IE

Hola a todos, tengo un script para validar correos electrónicos, y funciona en todos los navegadores exepto en IE. El problema viene cuandop trato de poner una lista de correos, más de uno, separados por enter [retorno de carro].

Este el el código que utilizo:

Código Javascript:
Ver original
  1. function isEmail(emails)
  2. {
  3.     var s = emails.split("\n");
  4.     var result = true;
  5.     var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  6.     for(var indice in s)
  7.     {
  8.      if (!filter.test(s[indice]))
  9.        {result= false;alert("El correo [" + s[indice]+"] no tiene el formato correcto o tiene espacios, corrija el correo o eliminelo de la lista"); }
  10.         <%if request.Cookies("ins")=1 and session("idrol")<>3 then
  11.             response.write "if(Right(s[indice],8)!='@miserver.mx') {alert('Correo ['+s[indice]+'] no valido, debe ser correo de MISERVER\nSi es alumno de intercambio por favor solicite la inscripción a [email protected]\nPOR FAVOR ELIMINE ESE CORREO DE LA LISTA Y VUELVA A INTENTAR');result= false;}"
  12.           end if
  13.         %>
  14.     }
  15.     return (result);
  16. }

Si alguien me puede decir si puedo hacer algo para que funcione en IE, por favor. Gracias.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.

Última edición por JavierMMM; 17/08/2011 a las 11:48
  #2 (permalink)  
Antiguo 17/08/2011, 13:29
 
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Script no valida correo en IE

Algo que podes hacer es usar la libreria jquery.validate ya que de esta manera el codigo va a funcionar en todos los navegadores, incluido el maldito IE
  #3 (permalink)  
Antiguo 17/08/2011, 13:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Script no valida correo en IE

el salto de línea en ie se representa con la combinación \r\n

no te levanta error aquí??
Cita:
if(Right(s[indice],8)!='@miserver.mx') {alert('Correo ['+s[indice]+']....
en javascript no existe la función Right ni Left. su equivalencia es substr() o substring()
  #4 (permalink)  
Antiguo 17/08/2011, 14:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Script no valida correo en IE

Coincido, quizás el problema sea el \r\n que usa Windows para separar líneas en vez de \n (que es de UNIX)
Agrega la posibilidad de encontrar espacios antes y después de la cadena: /^\s* ... \s*$/

A propósito: el patrón permite cosas como esto: [email protected]bla debido al último "+"



Saludos.
  #5 (permalink)  
Antiguo 17/08/2011, 14:56
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Script no valida correo en IE

ahora que has dicho esto, me has dado una idea
Cita:
Iniciado por AlvaroG Ver Mensaje
Agrega la posibilidad de encontrar espacios antes y después de la cadena: /^\s* ... \s*$/
usar \s (que es equivalente a \r, \t y \n)
Cita:
var s = emails.split(/\s/);
  #6 (permalink)  
Antiguo 18/08/2011, 08:42
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Script no valida correo en IE

IsaBelM, AlvaroG y ernesto_ponce muchas gracias por sus respuestas... En realidad, comentando este if [ if (!filter.test(s[indice])) ] no me marcaba el error, pero debían de ser muy exactos para no poner errores...

Estoy haciendo el cambio que propusiste IsaBelM y al parecer es lo que me ha funcionado de maravilla

Seguiré trabajando en lo que comentas AlvaroG, esperando no me salte ningún error con eso de los correos.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.
  #7 (permalink)  
Antiguo 19/08/2011, 09:19
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Script no valida correo en IE

Hola de nuevo, verificando bien la solución que me dieron, he probado y funciona en cierto casas, pero lo que necesito es crear una lista de correos separados por "enter" de la siguiente manera:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

Gracias de nuevo.
__________________
__________________________________________________ ___________________________________
Las cosas más reales sólo suceden en la imaginación... Sólo recordamos, lo que nunca sucedió.

Etiquetas: correo
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 17:35.