Javascript regex删除路径名的第一部分
我得到了一个字符串,它实际上是url的一部分,如下所示:Javascript regex删除路径名的第一部分,javascript,regex,string,Javascript,Regex,String,我得到了一个字符串,它实际上是url的一部分,如下所示: /m/some/url/string some/url/string str = str.replace(/^\/[\w\d]+\//, ''); 我需要删除此字符串的第一部分,例如/m/,使其看起来像这样: /m/some/url/string some/url/string str = str.replace(/^\/[\w\d]+\//, ''); 我尝试了以下代码: var pathName = '/m/some/ur
/m/some/url/string
some/url/string
str = str.replace(/^\/[\w\d]+\//, '');
我需要删除此字符串的第一部分,例如/m/
,使其看起来像这样:
/m/some/url/string
some/url/string
str = str.replace(/^\/[\w\d]+\//, '');
我尝试了以下代码:
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个字符,这就是它不匹配的原因
因此,您需要删除正则表达式中的第一个
:
/^\/[^\/]+\//g
或者您可以只使用.replace(/^\/[\w\d]+\/,“”)
如下所示:
/m/some/url/string
some/url/string
str = str.replace(/^\/[\w\d]+\//, '');
演示:
var str=“/m/some/url/string”;
str=str.replace(/^\/[\w\d]+\/,“”);
console.log(str)代码>
奇怪的是,它与/my/一起工作,但与/m/不一起工作。你知道为什么吗
这里没有什么奇怪的,您的\/./.^\/]+
正则表达式正在使用/my/.
而不是/m/.
工作,因为它要求在第一个/.
之后至少有两个字符,因为
匹配一个字符,而[^\/]+
匹配至少一个字符,而m
是1个字符,这就是它不匹配的原因
因此,您需要删除正则表达式中的第一个
:
/^\/[^\/]+\//g
或者您可以只使用.replace(/^\/[\w\d]+\/,“”)
如下所示:
/m/some/url/string
some/url/string
str = str.replace(/^\/[\w\d]+\//, '');
演示:
var str=“/m/some/url/string”;
str=str.replace(/^\/[\w\d]+\/,“”);
console.log(str)代码>它在我的chrome控制台中工作。你确定是这样吗?因为我只是在控制台中复制粘贴您的代码,它工作正常。为什么是正则表达式?找到第二个“/”字符并删除所有字符怎么样?”/m/some/url/string.replace(/^\/.+?\/,“”)
为了帮助您了解版本中的情况,创建了一个小提琴-技巧是
匹配任何字符,然后匹配[^\/]+
,这意味着“不是/至少一到多次“。因此,这些组合的结果在/之间至少包含2个字符。移除
,您就没事了。它在我的chrome控制台中工作。您确定是这种情况吗?因为我只是在控制台中复制粘贴您的代码,它工作正常。为什么是正则表达式?找到第二个“/”字符并删除所有字符怎么样?”/m/some/url/string.replace(/^\/.+?\/,“”)
为了帮助您了解版本中的情况,创建了一个小提琴-技巧是
匹配任何字符,然后匹配[^\/]+
,这意味着“不是/至少一到多次“。因此,这些组合的结果在/之间至少包含2个字符。删除
就可以了。删除括号可以节省2个字节。。。哦,等等,这不是。很好地指出了,谢谢,我是以.match
的方式思考的。删除括号可以节省2个字节。。。哦,等等,这不是。很好地指出了谢谢,我是以一种.match
的方式思考的。