为expressjs应用正则表达式

时间:2012-11-02 20:55:23

标签: regex node.js express

我需要处理这样的请求:

/key/6435.254.53538

我写的regexp在RegexPal中起作用

(([0-9]+\.?)+)

我在Express.js中创建了处理程序

/key/:key(([0-9]+\.?)+)

但它只返回键的最后一部分

req.params.key == '53538'

如何检索完整密钥?

1 个答案:

答案 0 :(得分:1)

问题似乎是您意外捕获了数字,并且只返回了最后一次捕获。尝试:

/key/:key((?:[0-9]+\.?)+)

/key/:key(((?:[0-9]+\.?)+))

可替换地:

/key/:key([\d.]+)

唯一的区别是它允许领先和连续的时期。如果您知道永远不会出现这种情况,或者不是问题,那么这个正则表达式更容易阅读。

相关问题