我想在nodejs-express路由路径中使用一个超级简单的过滤器。参数必须是word1或word2。 测试: https://forbeslindesay.github.io/express-route-tester/
带有表达式:test/:gender(\b(word1 word2)\b)
路径:test/word2
一切都很好。”路径与路径匹配”
但在代码中:
router.get('^/test/:gender(\b(word1|word2)\b)', function (req, res, next){//something})...;
我得到404(从Express重定向,如果参数不正确应该这样!).
注1:删除regex字符串,它可以工作。
注2:我做的另一个过滤器成功地使它工作。它必须像:“word1-word2[-morewords]。我用
router.get('^/test/:user_name(*[a-zA-Z0-9][-]*[a-zA-Z0-9])', function (req, res, next) {//something});
而且毫无问题地工作。
注3:我还测试了它(我首先在中编写它们)。 https://regex101.com/ 当然,它们也起作用。
那我做错了什么?
你可以用
'^/test/:gender(word1|word2)\\b'
请注意,在 gender 和 word ,您只能保留 尾随 单词边界。
gender
word
要定义单词边界,需要在后面跟一个反斜杠 b ,所以在字符串文字中,应该编写两个连续的反斜杠符号。
b