扩展RegExp以获取文件扩展名

时间:2013-02-07 12:16:53

标签: 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"} 

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

如果文件扩展名包含第3个(第4个)值,则最佳方式。 E.g:

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

1 个答案:

答案 0 :(得分:2)

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

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