Foros del Web » Programando para Internet » Javascript »

Funcion mail

Estas en el tema de Funcion mail en el foro de Javascript en Foros del Web. Bueno gente como veran soy nuevo ,cabe destacar que este foro me ayudo muchisimo y siempre que pude busque la info antes que pedir sin ...
  #1 (permalink)  
Antiguo 14/10/2011, 23:23
 
Fecha de Ingreso: octubre-2011
Ubicación: Rosario
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 1
Funcion mail

Bueno gente como veran soy nuevo ,cabe destacar que este foro me ayudo muchisimo y siempre que pude busque la info antes que pedir sin buscar.

El problema es si me pueden ayudar a que me anda la funcion SIN ExpReg, asi como esta anda maso menos bien , osea , me obliga a poner el @(arroba) despues del 3 caracter , despues del @(arroba) un punto ect.El tema esta en que me toma mas de 2 @(arrobas), asi como esta ,en la consola de errores
no me tira ningun error:


function correo()
{
m1=document.datos.mail.value

if(m1.indexOf("@",3)!=-1&&m1.indexOf(".",4)!=-1)
{
if(m1.indexOf("@",3)!=m1.lastIndexOf("@"))
{
return true;
}
}
else
{
alert("El campo E-MAIL es invalido.\n\n Ejemplo: [email protected]")
return false;

}
}


Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 14/10/2011, 23:37
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 1 mes
Puntos: 26
Respuesta: Funcion mail

Prueba este código talvez pueda servirte

Código HTML:
Ver original
  1.     function ValidarCadenaExpReg() {
  2.     // Expresion regular que representa un Email válido
  3.     cadena = "[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}";
  4.     re = new RegExp(cadena);
  5.    
  6.     if (document.getElementById("textValidReg").value.match(re))
  7.         alert("Aceptado");  
  8.     else
  9.         alert("Rechazado");
  10. }
  11.  
  12.  
  13. <span>Email :</span></br>
  14. <input id="textValidReg" type="text" value="[email protected]" /></br>
  15. <input onclick="ValidarCadenaExpReg()" type="button" value="Entrar" />

http://fgualambo.blogspot.com/2011/09/expresiones-regulares-javascript.html
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #3 (permalink)  
Antiguo 15/10/2011, 12:14
 
Fecha de Ingreso: octubre-2011
Ubicación: Rosario
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Funcion mail

Muchas Gracias por ayudar , pero alguien sabria hacerlo sin RegExp, como comprobar que el mail no tenga mas de 2 arrobas?
  #4 (permalink)  
Antiguo 15/10/2011, 13:23
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Funcion mail

¿Y por qué no puedes usar regexps? Me parece una tontería validar un email a pelo, usando indexOf y demás
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 15/10/2011, 22:03
 
Fecha de Ingreso: octubre-2011
Ubicación: Rosario
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Funcion mail

Tenes razon cronos2 , es una cuestion mia que llevo poco de javascript , todabia no llegue a RegExp y a medida que voy aparendiendo me interesa tener una "base" por asi decirle y entender a usar un poco mas la logica , y no hacer un copy paste y no tener idea de lo que quiere decir.Por decirle de una forma ir paso a paso.

Muchas gracias por responder
  #6 (permalink)  
Antiguo 16/10/2011, 07:49
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Funcion mail

Pero es que una cosa no quita la otra, me parece bien que quieras practicar con los strings para conseguir una base antes de meterte con las regexps, pero no le veo el sentido a validar un email de esta forma. Podrías hacer otras cosas más fructíferas y menos tediosas.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 16/10/2011, 08:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Funcion mail

buenas,
estoy de acuerdo en que es menos tedioso validar con una expresión regular, pero a la misma vez tiene validéz si se trata sobre una cuestión de aprendizaje, desarrollo de logística y dominio. claro, eso no te va ayudar a comprender mejor las expresiones regulares pero te puede servir en el desarrollo intelectual.

para determinar si existe más de un arroba en un string con indexOf, debes invocarlo más de una vez partiendo en diferentes puntos del string. si la segunda invocación devuelve un número distinto a -1, significa que tiene multiples arroba.

Código:
var mail = "[email protected]", count = -1, pos = -1;
do{
pos = mail.indexOf("@", pos +1);
count++;
} while(pos != -1);
al final la variable count te indica cuantos arrobas existen en el string. no obstante, entiendase que la validación de un mail es más complejo que simplemente validar si existen una cantidad de puntos o arroba. también debes validar el orden en que estos caracteres estan dispuestos. en la forma tradicional el proceso es más complejo.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 16/10/2011, 08:24
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Funcion mail

Yo usaría split, no sé si se me pasa algún edge case pero de entrada lo veo más sencillo:
Código Javascript:
Ver original
  1. if(mail.split('@').length > 2) // Hay más de una arroba
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: funcion
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 10:45.