你可以使一个JavaScript的正则expression式失败,而不是传递时发现匹配?

例如,我可以做一个正则expression式,以便string通过,如果它不包含“富”?

我正在做的是使用nodejs express来匹配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之外的所有页面的值应该是多less?

从文档看来,你必须使用正则expression式。

所以你需要用nhahtdh的模式

 /^(?!.*foo).*$/ 

/^(?!.*foo).*$/是什么意思?

说明

带括号的expression式被称为负向前视,也就是说,只有当.*foo 跟随当前位置(即string的起始位置) 之后 ,模式才能匹配,如^

所以,模式匹配所有的.* ,除非在开始之后的某个地方findfoo ,也就是说:

 The pattern matches everything unless `foo` occurs in the string somewhere.