例如,我可以创建一个正则表达式,以便字符串在不包含“foo”的情况下通过吗?
我正在做的是使用nodejsexpress来匹配URL。如何匹配任何不包含“foo”的URL?
例如,以下内容匹配根页面:
app.get('/', function(req, res){
res.send('hello world');
});
但是我怎样才能做同样的事情来匹配除 /login
之外的路由?
app.get(/regex_here/, function(req, res){
res.send('hello world');
});
regex_here
的值应该是多少才能匹配除 /login
之外的所有页面?
最佳答案
From the documentation ,看来您必须使用正则表达式。
所以你需要使用 nhahtdh's pattern :
/^(?!.*foo).*$/
What does
/^(?!.*foo).*$/
mean exactly?
说明
带括号的表达式称为负向先行,即模式只能在以下情况下匹配:.*foo
不紧跟在之后当前位置,即字符串的开头,用 ^
表示。
因此,该模式匹配所有内容 - .*
,除非在开头之后的某个位置找到 foo
,也就是说与:
The pattern matches everything unless `foo` occurs in the string somewhere.
关于javascript - 你能制作一个在找到匹配项时失败而不是通过的 JavaScript 正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542389/