javascript - 扩展 RegExp 以获取文件扩展名

标签 javascript regex url filepath

我知道,已经有很多基于 RegExp 的解决方案,但我找不到适合我需求的解决方案。

我有以下函数来获取 URL 的各个部分,但我还需要文件扩展名。

var getPathParts = function(url) {
    var m = url.match(/(.*)[\/\\]([^\/\\]+)\.\w+$/);
    return {
        path: m[1],
        file: m[2]
    };
};

var url = 'path/to/myfile.ext';
getPathParts(url); // Object {path: "path/to", file: "myfile"} 

我对正则表达式不太熟悉,也许你可以扩展这个给定的正则表达式,以获取文件扩展名?

最好的方法是,如果文件扩展名包含第三(第四)个值。例如:

return {
    path: m[1],
    file: m[2],
    ext: m[3]
};

最佳答案

只需添加一个捕获组即可获取最后一个 \w+ :

var getPathParts = function(url) {
    var m = url.match(/(.*)[\/\\]([^\/\\]+)\.(\w+)$/);
    return {
        path: m[1],
        file: m[2],
        ext: m[3]
    };
};

关于javascript - 扩展 RegExp 以获取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14750913/

相关文章:

PHP 将 URL 规范化为相同的形式

javascript - 如何在 Javascript 中使用旁边元素的值更改单元格的元素?

javascript - 16 位数字和正斜杠的正则表达式?

javascript - 向js中函数内部的对象添加方法

sql - SELECT 如果字符串包含列值

javascript - 正则表达式在 IE 8、9 和 10 中根本不起作用

Python 使用 Javascript 获取重定向 URL

jQuery:转到目标为 ="_blank"的 URL

c# - 为什么在字符串中使用引号的javascript转义字符需要\\' instead of\'

javascript - Angular 路由将数据发送到服务器