u00f3 - validar caracteres especiales javascript
Escapar de la barra invertida en cadena-Javascript (4)
Necesito mostrar el nombre del archivo actualmente seleccionado (en el elemento <input type="file">
).
Todo está bien, el único problema es que obtengo este tipo de cadena "C: / fakepath / typog_rules.pdf" (browset automáticamente pone esto como valor para el elemento de entrada).
Cuando trato de dividir la cadena por ''/'
o ''//'
, falla debido a las barras no guardadas. Los intentos de unir / reemplazar barras también falla. ¿Hay alguna forma de evitar esto? Necesito que esto funcione al menos en Opera e IE (porque en otros navegadores puedo usar FileReader)
EG Obtendré "C: / fakepath / typog_rules.pdf" como entrada y quiero obtener "typog_rules.pdf" como salida.
Escape del personaje de barra diagonal inversa.
foo.split(''//')
Creo que esto está más cerca de la respuesta que estás buscando:
<input type="file">
$file = $(file);
var filename = fileElement[0].files[0].name;
Agregue una identificación de entrada al elemento y haga algo como eso:
document.getElementById(''inputId'').value.split(/[//$]/).pop()
Por razones de seguridad, no es posible obtener la ruta real y completa de un archivo, referida a través de un elemento <input type="file" />
.
Esta pregunta ya menciona, y los enlaces a otras preguntas de desbordamiento de pila con respecto a este tema.
Respuesta anterior, mantenida como referencia para futuros visitantes que llegan a esta página a través del título, las etiquetas y la pregunta.La barra invertida tiene que ser escapada.
string = string.split("//");
En JavaScript, la barra diagonal inversa se usa para escapar de caracteres especiales, como líneas nuevas ( /n
). Si desea utilizar una barra invertida literal, se debe usar una barra diagonal inversa doble.
Por lo tanto, si desea unir dos barras diagonales inversas, se deben usar cuatro barras diagonales inversas. Por ejemplo, alert("////")
mostrará un diálogo que contiene dos barras diagonales inversas.