0

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

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

为什么app.param('uid', /^[0-9]{11,}/);不能正常工作?它阻止参数 like1234567890c并接受12345678901cor 12345678901ca

4

1 回答 1

1

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

第二种模式同时删除+$。删除 the+是完美的,但是,当您删除 the 时,$您会说数字后面的任何内容都可以出现。

尝试将 a 添加$到第二个模式:

app.param('uid', /^[0-9]{11,}$/);
于 2012-11-02T14:36:41.237 回答