我正在尝试创建与两者匹配的快速路线
/users/joe
/users/joe-4574
我知道我需要正则表达式才能解决这个问题,但尝试了各种各样的组合,我似乎无法让它发挥作用。
注意:我想匹配任何用户/用户ID,joe和4574只是示例。
答案 0 :(得分:0)
这个怎么样:
app.get(/^\/users\/([a-z]+)(?:\-(\d+))?/, ...);
这显然假设用户部分只能包含小写a
到z
,并且用户ID部分是全数字,但我会留下详细信息:)
此 还会匹配/users/joe-foobar
的请求,但会将req.params[1]
设置为null
(因为它不能匹配全部 - {1}}数字用户ID)。