我有一个字符串,它实际上是网址的一部分,如下所示:
/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/
合作。有什么想法吗?
答案 0 :(得分:4)
奇怪的是,它正在使用/ my /但不使用/ m /。有什么想法吗?
这里没什么奇怪的,您的var json= {
"firstName": "joe",
"lastName": "doe",
"phoneNumber": ,
"email": "joe.doe@test.com"
}
JsonConvert.DeserializeObject<Person>(json);
JsonConvert.DeserializeObject<Dynamic>(json);
正则表达式正在与\/.[^\/]+
合作,并且与/my/
无法合作,因为它在第一个之后需要至少两个字符 /m/
因为/
只匹配一个字符而.
只匹配至少一个字符,[^\/]+
是1个字符,这就是为什么它不匹配。
所以你需要删除你的正则表达式中的第一个m
:
.
或者您可以像这样使用/^\/[^\/]+\//g
:
.replace(/^\/[\w\d]+\//, '')
<强>演示:强>
str = str.replace(/^\/[\w\d]+\//, '');