JavaScript正则表达式匹配除/

JavaScript正则表达式匹配除/,javascript,regex,Javascript,Regex,假设我有以下字符串: /user/getMyId /user/2423432 /user/32324/test /user/32432232432 /user/sdafdsafdasfsda /user/sdafdsafdasfsda?filter=sdafdsaf 我想要的是编写一个正则表达式,该正则表达式匹配除第一部分/user/getMyId之外的所有URL。 我的期望是它返回除第一个/user/getMyId和第三个/user/32324/test之外的所有URL 我当前的正则表达式如

假设我有以下字符串:

/user/getMyId
/user/2423432
/user/32324/test
/user/32432232432
/user/sdafdsafdasfsda
/user/sdafdsafdasfsda?filter=sdafdsaf
我想要的是编写一个正则表达式,该正则表达式匹配除第一部分
/user/getMyId
之外的所有URL。 我的期望是它返回除第一个
/user/getMyId
和第三个
/user/32324/test
之外的所有URL

我当前的正则表达式如下所示:

/(:?(\/user\/(?!(getMyId))(\S+)))/

但它不起作用。

使用否定字符类匹配任何字符,但不匹配空格或
/

string.match(/^\/user\/(?!getMyId)[^\/\s]*$/m)

var数据=[
“/user/getMyId”,
“/user/2423432”,
“/user/32324/test”,
“/user/32432232432”,
“/user/sdafdsafdasfsda”,
“/user/sdafdsafdasfsda?filter=sdafdsaf”,
“/user/sdafdsafdasfsda?filter=sdaf dsaf”
]
var regex=/^\/user\/(?!getMyId)[^\/\s]*$/m;
data.forEach(函数(str){
console.log(str,regex.test(str))

});由于您有有限的异常,我建议您创建一个处理/验证异常的正则表达式,并使用它进行筛选

通过这种方式,您可以创建一个异常列表,然后创建一个动态正则表达式

var数据=[
“/user/getMyId”,
“/user/2423432”,
“/user/32324/test”,
“/user/32432232432”,
“/user/sdafdsafdasfsda”,
“/user/sdafdsafdasfsda?过滤器=sdafdsaf”
];
var异常=['getMyId','test']
var regex=new RegExp(“/”+exceptions.join(“|”);
data.forEach(函数(str){
console.log(str,regex.test(str))
});
var result=data.filter(x=>!regex.test(x));

console.log(result)
第三个URL被取消资格的原因是什么?排除这两个URL的具体原因是什么?您想将逻辑从这两个扩展到更高的版本吗?@TimBiegeleisen我想做的是匹配所有URL,以
/user/
开头,后跟除
getMyId
之外的非空格字符,以及
/everything
使用此
^\/user\/(?!getMyId$)[^\/\s]*$
如果您不想匹配
getMyId
getMyIdfoo