Cita:
Iniciado por Alexis88
...obtenemos la porción de la cadena a partir del último contra-slash... tomando así solo al nombre del archivo y su extensión
Hola
Alexis88, como siempre, gracias.
Híjole mano, si tienes tiempo a ver si me ayudas con estas dudas:
1) Entonces, corroborando, si no empleamos el
lastIndexOf el value del input agarra todo, que es la ruta completa del archivo en el disco duro del cliente.
2) ¿La expresión regular
[a-z] incluye letras acentuadas? (parece que sí).
3) Si la respuesta a la pregunta anterior es SÍ, entonces por qué tu código valida MAL esto:
áéíóú.pdf, pero valida BIEN esto:
áéíóú-ñoño.pdf
Modifiqué un poquillo tu código para hacer que la validación incluya lo que se considera caracteres especiales: acentos, signos varios, etc. Pero como no me salió poner toda la validación en una sola expresión regular, pues hice la validación en varios niveles
![Apenado](http://static.forosdelweb.com/fdwtheme/images/smilies/redface.png)
:
Código Javascript
:
Ver originalfunction validar_nombre_de_archivo(inputFile) {
var valor = inputFile.value;
var archivo = valor.substr(valor.lastIndexOf("\\") + 1);
if (!/[\s]+/gi.test(archivo)) {
console.log("No tiene espacios. ADELANTE");
if (!/[áãàáäâªèéëêìíïïòóöôùúüûñ稺~#@!%&¡¿}¨´><`;,:()\|\·\$\^\[\]\?\+\\]+/gi.test(archivo)) {
console.log("No tiene caracteres especiales. ADELANTE.");
}
else {
console.log("Tiene caracteres especiales. ALTO.");
}
}
else {
console.log("Tiene espacios. ALTO");
}
}
Hasta donde sé, esto:
Código Javascript
:
Ver originalif (/[^\s]+/gi.test(archivo)) {...}
debería leerse como:
si no hay espacios... Pero no me funciona, por eso utilicé el operador
!
Maestro, ¿apruebas esta validación? (sin contar lo feo que se ve al emplear tantas líneas
![:-S](http://static.forosdelweb.com/fdwtheme/images/smilies/crap.png)
)
Saludos!