可变数量的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地道的方式来解决这个问题?

 ^\/scope(?:\/\d+)*$ 

你可以试试看。

https://regex101.com/r/eZ0yP4/30