为什么这个路由器工作
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中连接字符串表示正则表达式路由?
new RegExp
如果我不使用\d
或\w
例如,这种模式有效:
regex = new RegExp('/(32)teeth')
但这不是:
regex = new RegExp('/(\d+)teeth')
答案 0 :(得分:3)
使用\
构造函数时,您应该转义RegExp
符号,因此它将是:
regex = new RegExp('/(\\d+)teeth')
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp