【发布时间】:2014-08-08 03:34:12
【问题描述】:
为什么这个路由器可以工作
app.get(/regularExpression/, function (req, res, next) {
});
但这不起作用Cannot GET
var regularExpressionString = "regularExpressionString";
var regularExpression = new RegExp(regularExpressionString);
app.get(regullarExpression, function (req, res, next) {
});
我需要第二个变体,因为我想根据 DRY 原则重用路由器字符串部分而不重复代码。但是当我使用/regularExpression/ 我cannot concat strings like /regularExpressionString1 + regularExpressionString2/.
那么如何在 node.js express regex route 中连接字符串?
更新
如果我不使用\d 或\w 等特殊符号,new RegExp 就可以工作
例如,这种模式有效:
regex = new RegExp('/(32)teeth')
但这不是:
regex = new RegExp('/(\d+)teeth')
【问题讨论】:
-
第二个变种也应该可以工作。确保在浏览器中导航到
/regularExpressionString,而不仅仅是/regularExpression -
@CuriousGuy 谢谢。像
new RegExp('/regularExpressionString')这样的简单正则表达式确实有效。但是当我尝试使用\d或\s时,它会失败。Cannot GET。请看我上面的更新。
标签: express