为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式更容易阅读。