我得到了一个字符串,它实际上是 url 的一部分,如下所示:
/m/some/url/string
我需要删除该字符串的第一部分,例如
/m/
看起来像这样:
some/url/string
我尝试了这段代码:
var pathName = '/m/some/url/string';
pathName = pathName.replace(/^\/.[^\/]+\//g, '');
console.log(pathName);//same string here as it was
并在 regex101.com 中验证其有效。但是当我在控制台中启动此代码时,字符串保持不变。有什么想法如何修复它吗?谢谢你
EDIT_1 奇怪的是,它可以与
/my/
一起使用,但不能与 /m/
一起使用。有什么想法吗?
奇怪的是,它可以与 /my/ 一起使用,但不能与 /m/ 一起使用。有什么想法吗?
这里没什么奇怪的,你的
\/.[^\/]+
正则表达式正在与 /my/
一起使用,而不是与 /m/
一起工作,因为它期望第一个 /
之后至少有两个字符,因为
.
与一个字符完全匹配,并且
[^\/]+
至少匹配 1 个字符,而
m
是 1 个字符,这就是它不匹配的原因。所以你需要删除正则表达式中的第一个
.
:
/^\/[^\/]+\//g
或者你可以像这样使用.replace(/^\/[\w\d]+\//, '')
:
str = str.replace(/^\/[\w\d]+\//, '');
演示:
var str = "/m/some/url/string";
str = str.replace(/^\/[\w\d]+\//, '');
console.log(str);