Jestem pewien, że to musi być na tyle łatwe, ale jestem walczą ...filename Mecz i rozszerzenie pliku z pojedynczym Regex
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]);
}
Powyższa funkcja działa poprawnie, ale jestem pewien, że to musi być możliwe do osiągnięcia za pomocą pojedynczego wyrażenia regularnego, poprzez odniesienie do różnych części tablicy zwróconej za pomocą metody .match(). Próbowałem połączyć te regex, ale bez powodzenia.
Również nie używam ciąg przetestować go na na przykład, jak console.log() ucieka ukośniki w A filePath i to rozpoczynało się mylić mnie :) Po tym pierwszym
jestem bardziej .net regex facetem, ale nie są brakuje ci pierwszej grupy przechwytującej? – rtpHarry
@rtpHarry: Całe dopasowanie (grupa 0) to nazwa pliku (wraz z rozszerzeniem), pierwsza grupa przechwytywania (grupa 1) jest rozszerzeniem. –
Potrzebuje nazwy pliku, a nie całej ścieżki. – shift66