我需要构建一个路由器,将 REST 请求路由到正确的控制器和操作。这里有一些例子:
POST /users
GET /users/:uid
GET /users/search&q=lol
GET /users
GET /users/:uid/pictures
GET /users/:uid/pictures/:pid
拥有一个尽可能好的正则表达式很重要,因为路由是必不可少的,并且在每次请求时都会完成。
我们首先必须用正则表达式替换 url 中的 : (直到结束或直到下一个正斜杠 /),然后我们可以用它来验证带有请求 url 的 url。
我们如何用正则表达式替换这些动态路由?就像搜索以“:”开头并以“/”结尾的字符串、字符串结尾或“&”一样。
这是我尝试过的:
var fixedUrl = new RegExp(url.replace(/\\\:[a-zA-Z0-9\_\-]+/g, '([a-zA-Z0-0\-\_]+)'));
由于某种原因,它不起作用。我如何实现一个用正则表达式替换 :id 的正则表达式,或者在与真实请求 url 进行比较时忽略它们。
感谢帮助