Javascript 节点/快速路由匹配的正则表达式:/api/**/1.2345

Javascript 节点/快速路由匹配的正则表达式:/api/**/1.2345,javascript,node.js,regex,express,Javascript,Node.js,Regex,Express,到目前为止,我已经: /\/api\/[+-]?([0-9]*[.])?[0-9]+$/ 哪个将匹配/api/1.234 但是,我希望对/api和/1.2344之间的子例程数量没有限制 例如: /api/hello/there/1.2345 应该是有效的路线。有人能帮我吗?这是针对node/express api的,因此它必须与javascript兼容 它将实现到我的routes文件中,如下所示: router.get(/\/api\/[+-]?([0-9]*[.])?[0-9]+$/, a

到目前为止,我已经:

/\/api\/[+-]?([0-9]*[.])?[0-9]+$/
哪个将匹配/api/1.234

但是,我希望对/api和/1.2344之间的子例程数量没有限制

例如:

/api/hello/there/1.2345
应该是有效的路线。有人能帮我吗?这是针对node/express api的,因此它必须与javascript兼容

它将实现到我的routes文件中,如下所示:

router.get(/\/api\/[+-]?([0-9]*[.])?[0-9]+$/, api.story);
这里的目标是api识别以浮点结尾的路由,因为它们与我的数据库中的故事id有关,api/之后和/1.12345之前的子例程是节的类别,有时可能是/section/1.2345或/section/subsection/1.2345


谢谢

您可以使用星号
*
匹配
\api
和浮点数之间的任何字符串:

app.get('/api/*([+-]?([0-9]*[.])?[0-9]+)$', function (req, res) {
    res.send('match');
});

上面的路线将响应
/api/hello/there/1.2345
/api/1.2345

关于
/\/api\/(\S+\/)*[+-]([0-9]*[.])?[0-9]+$/
?非常感谢您的帮助,这正是我正在搜索的内容。