Socorro no entiendo javascript

Hola amigo, espero que puedas ayudarme porque me he quedado colgado con el proyecto que estoy realizando en javascript.
El problema es el siguiente:
Desde un campo de formulario tipo "file" quiero coger el nombre del archivo que se ha seleccionado quitando todo el path y la extensión.
El código que he generado es el siguiente:
var subcadena=archivo.split('.');
var nombresinextension=subcadena[0];
var subnombre=nombresinextension.split('\');
var nombreverdadero=subnombre[1];
Supuestamente nombreverdadero contendría unicamente si por ejemplo el path es C:\AnoteVideo\multimedia\pepe.wmv
nombreverdadero debería contener 'pepe'
El problema es que no puedo usar el carácter \ dentro del split pues me dice que me falta un objeto. No entiendo porque pasa lo único que se me ocurre es que \ signifique algo para javascript aun cuando vaya entre ''.
Espero que puedas darme una solución.
Perdona por haberme explayado tanto.
Gracias amigo.
Respuesta
1
En tu pregunta me das la solución:
"No entiendo porque pasa lo único que se me ocurre es que \ signifique algo para javascript aun cuando vaya entre ''."
El carácter \ es un "escapador", es decir, si quieres poner unas comillas en un string así:
var cosa="El dijo: "Hola""
¿Cómo le dices a javascript que lo del 'hola' son comillas de texto y no de limitación de string?
Pues poniendolo asi:
var cosa="El dijo: \"Hola\""
Asi, javascript sabe que lo que haya detras del \ no lo tiene que interpretar.
De esta forma, creo que si pones:
var subnombre=nombresinextension.split('\');
Cree que tiene que "escapar" de '.
Y como escapa de \? Pues poniendo \\
Prueba con:
var subnombre=nombresinextension.split('\\');
Y sinceramente creo que debería funcionarte.
AH! Otro detalle. Si todo va ok, subnombre[1] es en realidad AnoteVideo. Deberías coger el ultimo del array, con:
subnombre[subnombre.length-1];
Muchísimas gracias por haberte tomado tantas molestias, de verdad que me has ayudado mucho. Ahora me funciona y ademas he aprendido algo más de javascript. De verdad muchas gracias. S@lu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas