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

regular expression for a url in node.js express routing

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

必须使用正则表达式

在node.js中捕获的URL
www.domain.com/people-images-taken-on-December-05-2011/ 

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

我会把上面的 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' }