javascript - 匹配来自单个正则表达式的文件名和文件扩展名

标签 javascript jquery 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]);
}

上面的函数工作正常,但我确信它一定可以通过引用 .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/

相关文章:

c - 从C中的char数组中减去一条信息

javascript - 让 JavaScript 中的赋值操作返回分配的值背后的意图/想法是什么?

javascript - Next.js 在启动应用程序时运行函数/脚本

javascript - 我如何评估参数 javascript 中的条件

jQuery 传递 CSS 变量

javascript - 从文本编辑器将文章存储在数据库中的最佳方法

Java 模式匹配器逗号

javascript - 在 primefaces 问题中重定向

javascript - 如何使用 testcafe 在同一个 cucumber 场景中打开两个浏览器窗口?

javascript - 使用正则表达式验证自定义表达式