为expressjs应用正则expression式

我需要处理这样的请求:

/key/6435.254.53538 

我写了在RegexPal中工作的正则expression式

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

我在Express.js中创build处理程序

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

但它只返回密钥的最后一部分

 req.params.key == '53538' 

我如何检索完整的密钥?

问题似乎是你意外地捕获了数字,只有最后一次捕获被返回。 试试:

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

要么

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

或者:

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

唯一的区别是它允许领先和连续的时期。 如果你知道永远不会是这样,或者不是一个问题,那么这个正则expression式更容易阅读。