Cuando un usuario selecciona un archivo en una página web, quiero poder extraer solo el nombre del archivo.
Probé la función str.search pero parece fallar cuando el nombre del archivo es algo como esto: c: \ uploads \ ilike.this.file.jpg .
¿Cómo podemos extraer solo el nombre del archivo sin extensión?
javascript
browser
extract
Yogi Yang 007
fuente
fuente
filename = filename.substring(0, filename.lastIndexOf('.'));
Porque su camino fallará con extensiones de más de 3 caracteres, por lo tanto: .html, .jpeg, etc.var startIndex = Math.max(fullPath.lastIndexOf('\\'), fullPath.lastIndexOf('/')) + 1;
Para dividir la cadena ({filepath} / {filename}) y obtener el nombre del archivo, puede usar algo como esto:
Ejemplo:
de:
"/home/user/file.txt".split(/(\\|\/)/g).pop()
usted obtiene:
"file.txt"
fuente
var filename = filepath.replace(/^.*?([^\\\/]*)$/, '$1');
[\\/]
. Además, también se pidió eliminar la extensión del archivo. Para obtener una solución completa, consulte: stackoverflow.com/a/32156800/19163Hoy en día existe una forma mucho más sencilla:
fuente
fileInput.files.length
antes de llamar.name
, en caso de que el usuario haya hecho clic en cancelar.Muy simple
fuente
Asumiendo:
El JavaScript sería:
fuente
fuente
Supongo que desea eliminar todas las extensiones, es decir,
/tmp/test/somefile.tar.gz
asomefile
.Enfoque directo con expresiones regulares:
Enfoque alternativo con operación de expresiones regulares y matrices:
fuente
Acabo de hacer mi propia versión de esto. Mi función se puede usar para extraer lo que quieras de ella, si no la necesitas todo, puedes eliminar fácilmente algún código.
Producirá lo siguiente:
Con
&& nOffset+1 === str.length
agregado aisDirectory
:Dados los casos de prueba, puede ver que esta función funciona de manera bastante robusta en comparación con los otros métodos propuestos aquí.
Nota para los novatos sobre \\: \ es un carácter de escape, por ejemplo, \ n significa una nueva línea y una pestaña \ ta. Para que sea posible escribir \ n, debe escribir \\ n.
fuente
&& eOffset < nOffset
).Entrada :
C:\path\Filename.ext
Salida :
Filename
En código HTML, establezca el
onChange
valor de Archivo así ...Suponiendo que su ID de campo de texto es 'wpName' ...
JavaScript
fuente
Ninguna de las respuestas altamente votadas proporciona "solo el nombre del archivo sin extensión" y las otras soluciones son demasiado código para un trabajo tan simple.
Creo que esto debería ser un ejemplo para cualquier programador de JavaScript. Es una expresión regular muy simple:
Primero, elimine cualquier cosa hasta la última barra, si está presente.
Luego, quite cualquier cosa después del último período, si está presente.
Es simple, es robusto, implementa exactamente lo que se pide. ¿Me estoy perdiendo de algo?
fuente
Cómo quitar la extensión
fuente
fuente
Ninguna de las respuestas anteriores funcionó para mí, aquí está mi solución que actualiza una entrada deshabilitada con el nombre de archivo:
fuente
Si está utilizando jQuery entonces
fuente