Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想使用正则表达式验证 Express(和 express-param)中的 http 请求参数。该参数必须是至少 11 位的数字。
为什么app.param('uid', /^[0-9]{11,}+$/);返回错误?
app.param('uid', /^[0-9]{11,}+$/);
为什么app.param('uid', /^[0-9]{11,}/);不能正常工作?它阻止参数 like1234567890c并接受12345678901cor 12345678901ca。
app.param('uid', /^[0-9]{11,}/);
1234567890c
12345678901c
12345678901ca
你的两种模式不一致。第一个(这是一个无效的正则表达式)有一个结尾$,指定输入必须匹配您的模式直到字符串的结尾。问题是您+在数字之后有一个导致它无效的数字,因为您指定了它应该已经重复的次数{11,}。
$
+
{11,}
第二种模式同时删除+和$。删除 the+是完美的,但是,当您删除 the 时,$您会说数字后面的任何内容都可以出现。
尝试将 a 添加$到第二个模式:
app.param('uid', /^[0-9]{11,}$/);