Foros del Web » Programando para Internet » Javascript »

Problema de novato, combinar 2 js

Estas en el tema de Problema de novato, combinar 2 js en el foro de Javascript en Foros del Web. Hola de nuevo amig@s!! Ahora el problema que se me presenta es como podría combinar estos 2 scripts (uno es para validar el e-mail y ...
  #1 (permalink)  
Antiguo 06/03/2004, 13:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Problema de novato, combinar 2 js

Hola de nuevo amig@s!!

Ahora el problema que se me presenta es como podría combinar estos 2 scripts (uno es para validar el e-mail y el otro para que se vuelva a introducir):

<script language="JavaScript">
<!-- Empieza
function emailCheck (emailStr) {
/* El patrón siguiente se utiliza para comprobar si la dirección de e-mail corresponde con el
formato de usuario@dominio. También se utiliza para separar el usuario del dominio. */
var emailPat=/^(.+)@(.+)$/
/* La secuencia siguiente representa el patrón para comprobar todos los
caracteres especiales. No deseamos permitir caracteres especiales en
la dirección. Estos caracteres incluyen ( ) < > @ , ; : \ " . [ ] */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* La secuencia siguiente representa la gama de los caracteres permitidos
en un usuario o un nomre de dominio. Realmente indica qué caracteres no se
permiten. */
var validChars="\[^\\s" + specialChars + "\]"
/* El patrón siguiente se aplica si el "usuario" es una cadena de caracteres
(en cuyo caso, no hay ninguna regla sobre qué caracteres
se permiten y cuales no, vale cualquier cosa). E.g. "jiminy cricket"@disney.com
es una dirección de e-mail válida. */
var quotedUser="(\"[^\"]*\")"
/* El patrón siguiente se aplica para los dominios que son direcciones IP,
en lugar de los nombres simbólicos. E.g. joe@[123.124.233.4 ] es
una dirección legal de e-mail. NOTA: Se requieren los corchetes. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* La secuencia siguiente representa un átomo (básicamente una serie de
caracteres no-especiales.) */
var atom=validChars + '+'
/* La secuencia siguiente representa una palabra en el username típico.
Por ejemplo, en [email protected], juan y perez son palabras.
Básicamente, ambas palabras son una cadena. */
var word="(" + atom + "|" + quotedUser + ")"
// El patrón siguiente describe la estructura del usuario
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
/* El patrón siguiente describe la estructura de un dominio simbólico
normal, en comparación con el ipDomainPat, demostrado arriba. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


/* Finalmente, comencemos a intentar comprobar si la
dirección provista es válida. */

/* Comenzamos con el patrón simplemente a partir usuario@dominio en
distintas partes para facilitar el análisis. */
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
/* Demasiadas/pocas @ o algo; básicamente, esta dirección incluso no
concuerda con el formato general de una dirección válida de e-mail. */
alert("La entrada de e-mail parece ser incorrecta (chequee @ y .'s)")
return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Comprueba si el usuario es válido
if (user.match(userPat)==null) {
// usuario no valido
alert("El nombre de usuario parace no ser correcto.")
return false
}

/* si la dirección de e-mail es una dirección IP (en comparación con un nombre de host
simbólico) cerciorarse de que la dirección IP sea válida. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
// Esto es una dirección IP
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Direccion IP no valida!")
return false
}
}
return true
}

// El dominio es un nombre
var domainArray=domain.match(domainPat)
if (domainArray==null) {
alert("El nombre de dominio parace no ser correcto.")
return false
}

/* el nombre de dominio parece válido, pero ahora hay que asegurarse de que termina en
tres letras (como edu, com, gob) o en 2 letras, representando el país (uk, nl), y que hay
un dominio que precede el dominio o el país. */

/* Ahora necesitamos partir el dominio para conseguir división
consistente en. */
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
domArr[domArr.length-1].length>3) {
// el e-mail debe acabar en 2 ó 3 letras.
alert("La direccion de correo debe acabar en 3 letras de dominio o 2 de un pais.")
return false
}

// Cerciorarsese de que haya un nombre de host que precede el dominio.
if (len<2) {
var errStr="Esta direccion es desconocida como IP!"
alert(errStr)
return false
}

// Si hemos conseguido esto, todo es válido!
return false

}
// End -->
</script>

Y para que se vuelva a introducir:
<script language="JavaScript">
<!-- Empieza
function checkEm(form) {
email1 =document.forms[0].email1;
email3 = document.forms[0].email3;
if(email1=='')
{
alert('Introduzca su e-mail');
document.forms[0].email1.focus();
return false;
}
else if(email3=='')
{
alert('Introduzca la repeticion de su e-mail');
document.forms[0].email3.focus();
return false;
}
else if (email1 != email3) {
alert ("\nlas direccion es de e-mail introducidas no coinciden. Por favor, vuelva a introducirlas.")
return false
}
}
// Acaba -->
</script>

</head>
<body>


Y aquí el formulario (simplificado)

<form action="http://www.dominio.com/cgi-bin/archivo.cgi" method="POST" onsubmit="javascript:checkEm(this);return emailCheck(this.email1.value)">

<input type="text" name="email1" size="25">
<input type="text" name="email3" size="25">
<input type="submit" value="Enviar"></form>


Supongo que se podrían unir en uno solo pero, con mis limitadísimos conocimientos de Js, no se cómo, el caso es que no funciona y me estoy volviendo loco

¡¡ Por favor, que alguien me ayude!!

Salu2

Rubén
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 14:09.