我得到了一个字符串,它实际上是 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/
因为它期望在第一个字符之后至少有两个字符,/
因为.
恰好匹配一个字符并且[^\/]+
匹配至少一个字符,并且m
是 1 个字符,这就是它不匹配的原因。
所以你需要删除.
你的正则表达式中的 firts :
/^\/[^\/]+\//g
或者你可以.replace(/^\/[\w\d]+\//, '')
像这样使用:
str = str.replace(/^\/[\w\d]+\//, '');
演示:
var str = "/m/some/url/string";
str = str.replace(/^\/[\w\d]+\//, '');
console.log(str);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句