Estoy seguro que esto debe ser lo suficientemente fácil, pero estoy luchando ...nombre del partido y la extensión de archivo de una sola expresión regular
var regexFileName = /[^\\]*$/; // match filename
var regexFileExtension = /(\w+)$/; // match file extension
function displayUpload() {
var path = $el.val(); //This is a file input
var filename = path.match(regexFileName); // returns file name
var extension = filename[0].match(regexFileExtension); // returns extension
console.log("The filename is " + filename[0]);
console.log("The extension is " + extension[0]);
}
La función anterior funciona bien, pero estoy seguro que debe ser Es posible lograrlo con una sola expresión regular, al hacer referencia a diferentes partes de la matriz devuelta con el método .match(). Intenté combinar estas expresiones regulares pero sin éxito.
Además, no estoy usando una cadena para probarlo en el ejemplo, como console.log() se escapa de las barras invertidas en una ruta de archivo y que estaba empezando a confundir a mí :)
Yo soy más de un tipo de expresiones regulares de .NET pero no se ¿Te estás perdiendo el primer grupo de captura? – rtpHarry
@rtpHarry: la coincidencia completa (grupo 0) es el nombre de archivo (incluida la extensión), el primer grupo de captura (grupo 1) es la extensión. –
Necesita el nombre del archivo, no todo el camino. – shift66