Javascript 将尽可能多的URL路由参数与regexp的路径匹配?

Javascript 将尽可能多的URL路由参数与regexp的路径匹配?,javascript,regex,url,match,Javascript,Regex,Url,Match,我想要一种方法来匹配尽可能多的URL参数,例如 /teams/:teamID/players/:playerID/seasons/:seasonID/detail 将匹配以/teams开头的任何内容,并匹配现有的尽可能多的参数,直到/detail(且仅限于) 不匹配 /Giants/123/players/456/seasons/2020/detail/12345 我正在使用。如果可能不使用正则表达式,您可能可以使用/作为分隔符将URL拆分为一个数组。获取团队之后的数组的每个元素,直到详细信

我想要一种方法来匹配尽可能多的URL参数,例如

/teams/:teamID/players/:playerID/seasons/:seasonID/detail
将匹配以/teams开头的任何内容,并匹配现有的尽可能多的参数,直到/detail(且仅限于)

不匹配

/Giants/123/players/456/seasons/2020/detail/12345

我正在使用。

如果可能不使用正则表达式,您可能可以使用
/
作为分隔符将URL拆分为一个数组。获取
团队
之后的数组的每个元素,直到
详细信息

如果有可能不使用正则表达式,您可能可以使用
/
作为分隔符将URL拆分为数组。获取
团队
之后的所有数组元素,直到
详细信息

我发现了一个很好的库,它完全符合我的需要,非常精简,并使用经过良好测试的Backbone.js片段进行模式匹配:

示例:

pattern: '/users/:id' 
url: '/something-else' 
extracted params: nothing, because it won't match

pattern: '/users/:id' 
url: '/users/scrooge-mc-duck' 
extracted params: {id: 'scrooge-mc-duck'}

pattern: '/users/:id' 
url: '/users/47' 
extracted params: {id: '47'}

pattern: '/schools/:schoolId/teachers/:teacherId' 
url: '/schools/richland/teachers/47' 
extracted params: {schoolId: 'richland', teacherId: '47'}

这为我提供了我想要的和需要的

我发现了一个很好的库,它完全符合我的需要,非常精简,并使用经过良好测试的Backbone.js片段进行模式匹配:

示例:

pattern: '/users/:id' 
url: '/something-else' 
extracted params: nothing, because it won't match

pattern: '/users/:id' 
url: '/users/scrooge-mc-duck' 
extracted params: {id: 'scrooge-mc-duck'}

pattern: '/users/:id' 
url: '/users/47' 
extracted params: {id: '47'}

pattern: '/schools/:schoolId/teachers/:teacherId' 
url: '/schools/richland/teachers/47' 
extracted params: {schoolId: 'richland', teacherId: '47'}

这正是我想要和需要的

我投了反对票,这不是一个可行的答案吗?我投了反对票,这不是一个可行的答案吗?你在用Express吗?或者,还有别的吗?@Brad我在一个React应用程序中,试图使用指向regexp的路径(我相信Express会使用该路径解析URL路由模式)@blue18hutthutt在这种情况下,我建议删除Node.js标记,并在您的问题中提及模块。根据评论中给出的详细信息,重新打开问题,它与关闭时的副本不同。您使用的是Express吗?或者,还有别的吗?@Brad我在一个React应用程序中,试图使用指向regexp的路径(我相信Express会使用该路径解析URL路由模式)@blue18hutthutt在这种情况下,我建议删除Node.js标记,并在您的问题中提及模块。根据评论中给出的详细信息,重新打开问题,它与它关闭时的副本不同。