2

正規表現ベースのソリューションはすでにたくさんありますが、自分のニーズに合ったソリューションを見つけることができませんでした。

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番目)の値が含まれている場合です。例えば:

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

1 に答える 1

2

最後を取得するには、キャプチャグループを追加するだけ\w+です。

var getPathParts = function(url) {
    var m = url.match(/(.*)[\/\\]([^\/\\]+)\.(\w+)$/);
    return {
        path: m[1],
        file: m[2],
        ext: m[3]
    };
};
于 2013-02-07T12:20:07.727 に答える