ric*_*cky 6 javascript regex routes node.js
使用path-to-regexp时,如何匹配所有不以开头的路径/api/?
通过使用本机JavaScript,RegExp /^(?!\/api\/).*/将匹配/x/y/z。从这里查看测试结果

但是,它不适用于正则表达式路径。从那里查看测试结果
那么,实现正则表达式路径的正确方法是什么?
[更新1]
更多详细信息:实际情况是我正在使用angular2 + koajs。并且在angular2中,浏览器可能会向服务器发布客户端路由url。请参阅我对此的另一个问题。
为了解决这个问题,正如@mxii所建议的那样,我正在尝试使用koa-repath将所有不以开头的请求重定向/api/到根url:http://localhost:3000/除了它是静态资产(js / json / html / png / ...)要求。
并koa-repath用于path-to-regexp匹配路径。这就是为什么我问这个问题。
请参阅我的评论,了解有关快速路线测试仪如何工作的说明。
如果您只是想要一个简单的正则表达式来检查字符串是否以apior开头/api,则不需要“path-to-regex”,您可以简单地使用此正则表达式:
/^(?!\/?api).+$/
Run Code Online (Sandbox Code Playgroud)
解释:
^ => beginning of string
(?!) => negative look-ahead
\/? => 0 or 1 slash
.+ => 1 or more character (any except newline)
$ => end of string
Run Code Online (Sandbox Code Playgroud)
因此,如果字符串开头后面没有跟/api(可选斜杠),您就会得到匹配。
有关示例,请参阅http://regexr.com/3e3a6 。
编辑:如果您想要相反(仅匹配以/api或开头的网址api,您可以使用正向前瞻:
^(?=\/?api).+$
Run Code Online (Sandbox Code Playgroud)
但它更简单:
^\/?api.*$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6535 次 |
| 最近记录: |