Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex expressjs中的高级路由_Regex_Node.js_Express - Fatal编程技术网

Regex expressjs中的高级路由

Regex expressjs中的高级路由,regex,node.js,express,Regex,Node.js,Express,我正在尝试创建一条既能匹配两者的快速路线 /users/joe /users/joe-4574 我知道我需要正则表达式来解决这个问题,但尝试了各种组合后,我似乎无法让它工作 注意:我想匹配任何用户/用户ID,joe和4574只是示例 这个怎么样: app.get(/^\/users\/([a-z]+)(?:\-(\d+))?/, ...); 这显然是假设用户部分只能包含小写的a到z,并且用户ID部分都是数字,但我将把细节留给您:) 这也将匹配对/users/joe foobar的请求,但它

我正在尝试创建一条既能匹配两者的快速路线

/users/joe

/users/joe-4574
我知道我需要正则表达式来解决这个问题,但尝试了各种组合后,我似乎无法让它工作

注意:我想匹配任何用户/用户ID,joe和4574只是示例

这个怎么样:

app.get(/^\/users\/([a-z]+)(?:\-(\d+))?/, ...);
这显然是假设用户部分只能包含小写的
a
z
,并且用户ID部分都是数字,但我将把细节留给您:)

这也将匹配对
/users/joe foobar
的请求,但它将
req.params[1]
设置为
null
(因为它无法匹配全数字用户ID)