使用正则表达式使用Express验证参数

时间:2012-11-02 14:31:44

标签: regex node.js express

我想使用正则表达式验证Express(和express-param)中的http请求参数。 此参数必须是至少包含11位数的数字。

为什么app.param('uid', /^[0-9]{11,}+$/);会返回错误?

为什么app.param('uid', /^[0-9]{11,}/);不能正常工作? 它会屏蔽1234567890c之类的参数并接受12345678901c12345678901ca

1 个答案:

答案 0 :(得分:1)

您的两种模式不一致。第一个(这是一个无效的正则表达式)有一个结尾$,指定输入必须匹配您的模式直到字符串的结尾。问题是您在数字之后有一个+因为您指定它应该与{11,}重复的次数导致它无效。

第二种模式同时删除了+$。但是,删除+是完美的,当您放弃$时,之后 之后可以显示任何

尝试在第二种模式中添加$

app.param('uid', /^[0-9]{11,}$/);