你可以使一个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.