javascript - node.js 快速路由中 url 的正则表达式

标签 javascript node.js regex express url-routing

我正在构建使用正则表达式进行路由的 node.js 服务器。

必须使用正则表达式在 node.js 中捕获的 URL

www.domain.com/people-images-taken-on-December-05-2011/ 

people-images-taken-on- 固定在 URL 中。我只想捕获月份、日期和年份。

我将像下面这样在 express 中捕获上面的 URL

app.get('/people-images-taken-on-{only alphabets}-{2 digits}-{4 digits} ',

我分别找到了每个模式的正则表达式

allows only alphabets - [a-zA-Z]+$
allows a 4 digits value - (\\d){4}
allows a 2 digits value - (\\d){2}

我试图把所有的东西都结合起来,但是我失败了很多次。任何人都可以为 url 模式提供正确的正则表达式吗?还有谁能告诉我这种基于正则表达式的路径处理是处理日期的好方法吗?

最佳答案

您可以使用 named parameters with custom regular expressions ,像这样:

app.get('/people-images-taken-on-:month([a-zA-Z]+)-:day(\\d{2})-:year(\\d{4})', ...)

这会将值存储在 req.params 中,如下所示:

{ month: 'December', day: '05', year: '2011' }

关于javascript - node.js 快速路由中 url 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894725/

相关文章:

node.js - 在nodeJS中使用express和socket.io时出现重复值

regex - Perl 提取文本

node.js - MongoDB - 如何从所有集合中找到所有其他相关文档。我只能访问 1 个 ID

javascript - 如何在 extjs 中单击按钮后打开一个窗口

javascript - jQuery 验证不适用于 focusout?

node.js - 无法让 socket.io 进行轮询(node、js、express、ejs、socket.io)

node.js - CentOS Yum 上的 NPM 依赖错误

Python 自动检测和分割正则表达式组

JavaScript 多项选择测验。正确答案显示元素

javascript - iOS Safari 在触摸 body 时无法滚动绝对 div 的内容(延迟)