Javascript 检查字符串是否不包含URL段并与之匹配

Javascript 检查字符串是否不包含URL段并与之匹配,javascript,regex,regex-negation,Javascript,Regex,Regex Negation,如何检查URL字符串是否不包含以下字符串:test/test/posts/search/1234567,这样当我提供以下URL:test/test/1234567时,match函数将返回:[“test/test/1234567”,“test/test/,”“,“1234567”] 更新: 如果我在URL中提供/posts/search,我想在re.test(URL)函数中省略这个正则表达式 //var url=“test/test/posts/search/1234567”//期望结果:nul

如何检查URL字符串是否不包含以下字符串:
test/test/posts/search/1234567
,这样当我提供以下URL:
test/test/1234567
时,
match
函数将返回:
[“test/test/1234567”,“test/test/,”“,“1234567”]

更新:

如果我在URL中提供
/posts/search
,我想在
re.test(URL)
函数中省略这个正则表达式

//var url=“test/test/posts/search/1234567”//期望结果:null
var url=“test/test/1234567”;//结果:[“test/test/1234567”,“test/test/”,未定义,“1234567”]
var urlpeffix='test/test/';
var re=new RegExp(“(“+urlPrefix+”)(posts\/search\/)([0-9]+)”,“i”);

console.log(url.match(re))您就快到了,只需使用
量词将第二个捕获组设置为可选,表示0或1次出现,贪婪:

var url=“test/test/posts/search/1234567”;//结果:空
var urlpeffix='test/test/';
如果(!url.includes(“posts/search/”)){
var re=new RegExp(“(“+urlpeffix+”)(posts/search/)?([0-9]+)”,“i”);
//                                                     ^    
console.log(url.match(re));
}
否则{
log(url+“包含”posts/search/“!”);

}
输出是否看起来像
[“test/test/1234567”,“test/test/”,未定义,“1234567”]
?谢谢!我忘了添加,我想在
test()
函数url中省略它,该函数包含
posts/search/
如果很容易实现,请检查更新。我认为在这里,
includes
是regex的一个很好的替代品。