node.js - nodejs Express 正则表达式路径 : working in test, 在代码中不起作用。我做错了什么?

标签 node.js regex express

我想要在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'

请注意,genderword 之间没有单词边界,您只能保留尾随单词边界。

要定义单词边界,您需要一个文字反斜杠,后跟 b,因此在字符串文字内,您应该编写两个连续的反斜杠符号。

关于node.js - nodejs Express 正则表达式路径 : working in test, 在代码中不起作用。我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51425420/

相关文章:

javascript - 使用 Node 从 AWS CLI 获取区域

javascript - devDependencies 是否与 `npm install -g my-package` 一起安装?

node.js - 是否有一个 npm 命令可以知道特定 Node 模块所在的位置

node.js - 如何确定何时将功能引入 React

java - 正则表达式匹配java中的变量声明

java - 处理一个大的正则表达式问题

ruby - 正则表达式匹配除反斜杠以外的任何字符

javascript - 如何测试包含异步函数的nodejs导出

node.js - 如何使用 Mongoose 在 Node js 中将此出生日期转换为年龄

javascript - 将数据从网络发送到本地服务器