Javascript路由正则表达式
Javascript routing regex
我需要构建一个路由器,将REST请求路由到正确的控制器和操作。这里有一些例子:
POST /users
GET /users/:uid
GET /users/search&q=lol
GET /users
GET /users/:uid/pictures
GET /users/:uid/pictures/:pid
有一个正则表达式是很重要的,并且尽可能好,因为路由是必不可少的,并且是在每个请求时完成的。
我们首先必须用正则表达式替换url中的:(untl-end或untl-next正斜杠/),然后我们可以使用正则表达式用请求url验证url。
我们如何用正则表达式替换这些动态路由?类似于搜索以":"开头、以"/"、字符串结尾或"&"结尾的字符串。
这就是我尝试的:
var fixedUrl = new RegExp(url.replace(/''':[a-zA-Z0-9'_'-]+/g, '([a-zA-Z0-0'-'_]+)'));
由于某种原因,它不起作用。我如何实现一个用正则表达式替换:id的正则表达式,或者在与实际请求url进行比较时忽略它们。
感谢的帮助
我会使用:[^'s/]+
来匹配以冒号开头的参数(匹配:
,然后尽可能多地匹配除/
和空白字符之外的字符)。
作为替换,我使用([''w-]+)
来匹配捕获组中的任何字母数字字符-
和_
,前提是您也有兴趣使用匹配的参数。
var route = "/users/:uid/pictures";
var routeMatcher = new RegExp(route.replace(/:[^'s/]+/g, '([''w-]+)'));
var url = "/users/1024/pictures";
console.log(url.match(routeMatcher))
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- Javascript路由正则表达式
- 木偶:根据路由正则表达式启动和停止模块
- 使用正则表达式的Url路由子字符串
- 使用正则表达式的Ui路由器路由参数
- 快速路由正则表达式
- Express.js的路由和正则表达式
- Express.js:路由中的正则表达式
- ExpressJS 路由中的正则表达式