I'm trying to validate mobile number between 10 to 12 digits with optional
sign
Validators.pattern("^(( ?))?[0-9]{12}$")
but when i enter plus then it is not validation properly.
CodePudding user response:
Maybe try "^[0-9]{10,12}$"
or "^\d{10,12}$"
?
CodePudding user response:
this your regex:
^\ ?\d{10,12}$
because
is part of regex syntex you must exclude it by adding \
before,
and the ?
symbol mean that is optional
CodePudding user response:
-UPDATE-
The issue is with the " " character in the regular expression. In a regular expression, the " " character is a special character that means "one or more of the preceding character." In this case, the " " character is not preceded by any other character, so the regular expression is saying "one or more of nothing." To fix the issue, you should escape the " " character with a "", so that it is treated as a literal " " character instead of a special character.
Try this regular expression instead: "^(( )?[0-9]{10,12})$"
Also, you should use "?" or {0,1} after the " " sign if you want it to be optional.
So the final regular expression should be like this: "^(( )?[0-9]{10,12})$"
-END OF UPDATE-
The issue is with the pattern you are using. The " " character has a special meaning in regular expressions, so you need to escape it in order for it to be treated as a literal character. You can use the "" character to escape it, like this:
Validators.pattern("^(( )?[0-9]{10,12})$")
This pattern will match a string that starts with an optional " " character, followed by 10 to 12 digits.