正则表达式删除pathName的第一部分

时间:2017-12-08 15:32:42

标签: javascript regex string

我有一个字符串,它实际上是网址的一部分,如下所示:

/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/合作。有什么想法吗?

1 个答案:

答案 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]+\//, '');