¿cómo obtendría la extensión de archivo del archivo en una variable? si tengo un archivo como 1.txt Necesito el txt parte de él.¿Cómo extraer la extensión de la cadena de nombre de archivo en Javascript?
Respuesta
var x = "1.txt";
alert (x.substring(x.indexOf(".")+1));
nota 1: esto no va a funcionar si el nombre del archivo es de la forma file.example.txt
Nota 2: este fallará si el nombre del archivo es de la forma archivo
utilice el método lastIndexOf
para encontrar el último período en la cadena, y obtener la parte de la cadena después de que:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
No funciona con variantes de "archivo" (es decir, sin extensión). –
En realidad, lo hace. Devuelve el nombre completo del archivo, que es tan bueno como cualquier cosa en ese caso IMO. Si desea una cadena vacía en su lugar, tendrá que usar una instrucción if (¡jadeo!). Además, si utiliza node.js con JavaScript, consulte el módulo integrado "ruta". –
que nos e código a continuación:
var fileSplit = filename.split('.');
var fileExt = '';
if (fileSplit.length > 1) {
fileExt = fileSplit[fileSplit.length - 1];
}
return fileExt;
Esta es la solución si su archivo tiene más. (puntos) en el nombre.
<script type="text/javascript">var x = "file1.asdf.txt";
var y = x.split(".");
alert(y[(y.length)-1]);</script>
Yo recomiendo usar lastIndexOf() en contraposición a indexOf()
var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))
Una variante que funciona con todas las siguientes entradas:
"file.name.with.dots.txt"
"file.txt"
"file"
""
null
undefined
sería:
var re = /(?:\.([^.]+))?$/;
var ext = re.exec("file.name.with.dots.txt")[1]; // "txt"
var ext = re.exec("file.txt")[1]; // "txt"
var ext = re.exec("file")[1]; // undefined
var ext = re.exec("")[1]; // undefined
var ext = re.exec(null)[1]; // undefined
var ext = re.exec(undefined)[1]; // undefined
Explicación
(?: # begin non-capturing group \. # a dot ( # begin capturing group (captures the actual extension) [^.]+ # anything except a dot, multiple times ) # end capturing group )? # end non-capturing group, make it optional $ # anchor to the end of the string
I pers onalmente prefiere dividir la cadena de .
y simplemente devolver el último elemento de la matriz :)
var fileExt = filename.split('.').pop();
Si no hay .
en nombre se obtiene toda la cadena de nuevo.
Ejemplos:
'some_value' => 'some_value'
'.htaccess' => 'htaccess'
'../images/something.cool.jpg' => 'jpg'
'http://www.w3schools.com/jsref/jsref_pop.asp' => 'asp'
'http://stackoverflow.com/questions/680929' => 'com/questions/680929'
Gracias. Esta es la más clara para mí. Estoy pasando el nombre de archivo a una función , así que tuve que hacer una comprobación nula antes de llamar a split. – Lifes
Regex parece exagerado para esto. Esto es más fácil de pensar/razonar. Uso esta solución para la mayoría de los casos. – aashtonk
obtener el valor de la variable & luego se separan de su extensión al igual que este.
var find_file_ext=document.getElementById('filename').value;
var file_ext=/[^.]+$/.exec(find_file_ext);
Esto te ayudará.
Es mejor utilizar lo siguiente; Funciona siempre!
var ext = fileName.split('.').pop();
Esto devolverá la extensión sin un prefijo de punto. Puedes añadir "." + ext para comprobar contra las extensiones que desea apoyar!
Respuesta repetida – insign
Pruebe esto. Puede resolver su problema.
var file_name_string = "file.name.string.png"
var file_name_array = file_name_string.split(".");
var file_extension = file_name_array[file_name_array.length - 1];
Saludos
Es mejor usar una expresión regular. – itsbruce
@itsbruce utilizando los términos "mejor" y votar abajo es una mierda ... Esto funciona. PD Si la pregunta era "¿Cuál es la mejor manera de obtener la extensión del nombre del archivo?" - Estoy totalmente de acuerdo ... –
No he votado negativamente. – itsbruce
- 1. extraer nombre de archivo de la ruta
- 2. ¿Cómo puedo extraer el nombre del archivo y la extensión de un camino en C++
- 3. ¿Cómo se cambia la extensión de nombre de archivo almacenada en una cadena en C++?
- 4. REGEX: nombre de archivo de captura desde la URL sin la extensión de archivo
- 5. Cómo extraer la extensión de archivo de la matriz de bytes
- 6. Extraer solo el nombre de archivo Del nombre de FileItem
- 7. Extraer clase y nombre de archivo de la excepción
- 8. Objetivo-C: Extraer nombre de archivo de la cadena de ruta
- 9. Obtener la extensión del archivo (nombre base?)
- 10. ¿Cómo extraer el nombre del archivo del nombre de la ruta del archivo?
- 11. nombre de archivo sin extensión
- 12. Obtener nombre de archivo antes de la extensión
- 13. ¿Cómo puedo cambiar la extensión de archivo con javascript
- 14. Obteniendo la extensión de archivo en C
- 15. ¿Cómo se puede eliminar la extensión de un nombre de archivo en un script de shell?
- 16. ¿Cómo extraer un parámetro GET de la URL en Javascript?
- 17. Cómo extraer la parte de nombre de host de una URL en JavaScript
- 18. Javascript expresiones regulares de extensión coincidente/archivo de extracción
- 19. Cómo eliminar la extensión de la cadena (¡solo la extensión real!)
- 20. Obtener el nombre de archivo de la ruta de cadena en javascript?
- 21. R extraer parte de la cadena
- 22. Cómo cambiar la extensión de archivo en tiempo de ejecución
- 23. Eliminar la extensión de archivo y la ruta de una cadena en Perl
- 24. Obtener nombre del archivo sin la extensión en Python
- 25. Cómo obtener un nombre de archivo sin extensión desde la ruta del archivo en Ruby
- 26. cómo quitar la extensión del nombre del archivo?
- 27. ¿Cómo puedo cambiar el nombre de la extensión en una cadena con bash?
- 28. Buscar nombre de archivo de la ruta de archivo completo
- 29. Ruby Net :: FTP, extraer el nombre de archivo de ftp.list()
- 30. Retire la extensión de un archivo
Tengo lo que quiero dar gracias .... – santanu
Usted podría utilizar lastIndexOf, no estoy seguro del soporte del navegador (puede que desee comprobar IE6, pero es fácil prototipo de su propia). .sólo querrá asegurarse de asegurarse de escanear desde antes del último carácter ... para que 'algo'. no coincide, pero 'something.x' sería – meandmycode
sí, mi solución es muy simplista, pero he documentado sus inconvenientes;) – cherouvim