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