第三次斜杠后分割字符串

时间:2017-03-03 19:48:43

标签: javascript regex

考虑以下字符串"/path1/path2/file.png"。 是否可以通过正则表达式提取"/path1/path2?如果是这样,你能提供一个例子以及它如何运作吗?如果不是什么可以替代?

4 个答案:

答案 0 :(得分:2)

我会这样做:

var str = '/path1/path2/file.png';

var regex = /(?:\/.*\/)(.*)/;
var filename = regex.exec(str)[1];
console.log(filename);

JSFiddle:https://jsfiddle.net/Ldpoqf0n/1/

这是另一种不使用正则表达式的方法:

var parts = str.split('/');
console.log(parts[parts.length - 1]);

答案 1 :(得分:1)

let str = '"/path1/path2/file.png"';

console.log(str.replace(/\/\w+.\w+"/, ''));

答案 2 :(得分:1)

试试这个

const src = '/path1/path2/file.png'

const getFirstPart = src => (src.match(/\/.*?\/.*?(?=\/)/) || [])[0]

console.log(getFirstPart(src))

答案 3 :(得分:1)

使用正则表达式:

var path = "/path1/path2/file.png";
var patt = new RegExp("\/.*?\/[^\/]*");
var subpath = patt.exec(path)[0];
console.log(subpath)

没有正则表达式:

function getSubpath(path, subpathLevel) {
    var arr = path.split("/");
    var subpath = "";
    for(var i = 0; i < subpathLevel && i < arr.length; i++)
        subpath += "/" + arr[i+1];
    return subpath;
}
console.log(getSubpath("/path1/path2/file.png", 2));

subpathLevel变量中,您可以设置要考虑的斜杠数量(在示例中为2)。