node.js使用新的RegExp表达路由

时间:2014-08-08 03:34:12

标签: express

为什么这个路由器工作

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')

1 个答案:

答案 0 :(得分:3)

使用\构造函数时,您应该转义RegExp符号,因此它将是:

regex = new RegExp('/(\\d+)teeth')

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp