I would like to validate http request parameters in Express (and express-param) using regular expressions. This parameter must be a number with 11 digits at least.
Why app.param('uid', /^[0-9]{11,}+$/); returns an error?
And why app.param('uid', /^[0-9]{11,}/); don't works fine?
It blocks params like 1234567890c and accepts 12345678901c or 12345678901ca.
Your two patterns are inconsistent. The first (which is an invalid regex) has an ending $ specifying that the input must match your pattern up to the end of the string. The problem is you have a + after the numbers which causes it to be invalid as you specify the number of times it should repeat already with {11,}.
The second pattern drops both the + and the $. Dropping the + is perfect, however, when you drop the $ you say that anything after the numbers can appear.
Try adding a $ to the second pattern:
app.param('uid', /^[0-9]{11,}$/);