我确信这一定很容易,但我正在努力...
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]);
}
上面的函数工作正常,但我确信它一定可以通过引用 .match() 方法返回的数组的不同部分来使用单个正则表达式来实现。我试过组合这些正则表达式但没有成功。
此外,我没有在示例中使用字符串来测试它,因为 console.log() 转义了文件路径中的反斜杠,这让我开始感到困惑:)
最佳答案
假设所有文件都有扩展名,您可以使用
var regexAll = /[^\\]*\.(\w+)$/;
然后你可以做
var total = path.match(regexAll);
var filename = total[0];
var extension = total[1];
关于javascript - 匹配来自单个正则表达式的文件名和文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9001557/