Hola
mariano_donati
Creo que el problema está en esta parte del código:
for (i=0;i<6;i++){
var index = cadena.indexOf(array[i ])
if(index > 0){
result = false;
}else{
Aunque encuentre un carácter invalido sigue comprobando, por eso si el último carácter que compruebas no se encuentra devuelve
true. Prueba poniendolo así:
for (i=0;i<6;i++){
var index = cadena.indexOf(array[i ])
if(index > 0){
result = false;
break
}else{
otra cosa, el primer valor del array deberías ponerlo así: array[0] = "\""
Saludos,