Buenas,
para ser exactos en este trozo de código:
Código Javascript
:
Ver originalif (formulario.pass.value.length != formulario.pass2.value.length)
{
alert("Nick demaciado corto");
// mas código
}
lo que está comparando es la longitud de las dos cadenas contenidas en la propiedad value de los campos pass, así que lo de nick tampoco parece tener mucho sentido. Y como el alert solo se ejecutará cuando sean de distinta longitud está claro que una será mas corta que la otra siempre. Poner nombres de variable y mensajes coherentes ayuda bastante, y conviene incluir comentarios. Además es la única comparación que haces con esos campos que no servirá de mucho como te ha dicho zerokilled.
De lo que comentas de que siempre te devuelve true, te comento un par de errores en el código:
Código Javascript
:
Ver originalfor (j = 0; j < checkOK.length; j++)
{ // te falta cerrar esta llave
if (ch == checkOK.charAt( j ) ) break;
if (j == checkOK.length) // este if nunca se ejecuta
{
allValid = false; // allValid sigue siendo true
break;
}
}
if (!allValid) { // este tampoco
y no se ejecuta por dos razones: por la condición del for, j nunca llegaría a ser igual a length y además porque el último caracter de una cadena es length -1 no el que usas en la comparación del if del for .
Como ya te ha dicho zerokilled las cadenas por defecto se comparan por valor y caracter a caracter y solo son iguales si tienen el mismo contenido y la misma longitud, así que no te hacen falta los for aninados, simplemente compara las cadenas