我想要在nodejs快速路由路径中有一个 super 简单的过滤器。参数必须是word1或word2。 测试于:https://forbeslindesay.github.io/express-route-tester/
使用表达式:test/:gender(\b(word1|word2)\b)
路径:测试/word2
一切都运转良好。 “路径与路线匹配”
但在代码中:
router.get('^/test/:gender(\b(word1|word2)\b)', function (req, res, next){//something})...;
我得到了 404(从 Express 重定向,如果参数不正确就应该如此!)。
注1:删除正则表达式字符串,它可以工作。
注 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
之间没有单词边界,您只能保留尾随单词边界。
要定义单词边界,您需要一个文字反斜杠,后跟 b
,因此在字符串文字内,您应该编写两个连续的反斜杠符号。
关于node.js - nodejs Express 正则表达式路径 : working in test, 在代码中不起作用。我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51425420/