[英]Match as many URL route parameters as possible with path-to-regexp?
我想要一種方法來匹配盡可能多的 URL 參數示例
/teams/:teamID/players/:playerID/seasons/:seasonID/detail
將匹配以 /teams 開頭的任何內容並匹配存在的盡可能多的參數,直到 /detail(並且僅達到)
/Giants => { teamID: null, playerID: null, seasonID: null }
/Giants/123 => { teamID: 123, playerID: null, seasonID: null }
/Giants/123/players/ => same as above
/Giants/123/players/456/seasons/2020/detail => { teamId: 123, playerID: 456, seasonID: 2020 }
/Giants/123/players/446/seasons/2020 => same as above
並且不匹配
/Giants/123/players/456/seasons/2020/detail/12345
我正在使用path-to-regexp 。
如果有可能不使用正則表達式,您可以使用/
作為分隔符將 URL 拆分為一個數組。 獲取數組中的每一個元素,它一直在team
之后,直到details
。
我找到了一個很好的庫,它完全符合我的需要,非常精簡,並使用經過良好測試的 Backbone.js 片段來進行模式匹配:
https://github.com/HenrikJoreteg/feather-route-matcher
例子:
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'}
這為我提供了我想要和需要的東西
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.