可变数量的paramsexpressionjs
我正在试图定义一个expression式js中的一个路由,它需要一个未知的N个参数。 它应该匹配以下路线, 捕获所有数字组:
/范围
/范围/ 1/12号
/范围/ 1 /一百二十三分之一十二
等等
我写了一个正则expression式来匹配n个数字,如下所示:
/(?:\/?(\d+)\/?)/g
然而global / g似乎不被允许,请参阅( github上的express js的正则expression式parsing器 )。 我在这里做错了什么? 我可以通过这样做来解决这个非常丑陋和肮脏的问题:
^\/scope\/?(\d+)?\/?(\d+)?\/?(\d+)?
但是这不是dynamic的,感觉很脏,如果我添加更深层次的范围,我总是需要添加更多/?(\ d +)正则expression式部分,这是一个不适合我的业务逻辑的模型。 我必须有一个更好的方法…
好吧,经过与@vks的讨论,这很有用,但不幸的是没有回答这个问题,我们得出的结论是,这不是一个正则expression式问题。 使用\ g修饰符,捕获所有数字组的正则expression式可以很容易地被写入,即使在JavaScript非常有限的正则expression式引擎中。
现在问题变得更加明确:由于expressjs不允许从开始到结束的完整的正则expression式,而是包含在正则expression式中使用的正则expression式,而不是允许/ g修饰符, expressjs地道的方式来解决这个问题?