AngularJs ng-pattern regex
11,182
I suggest defining a pattern to match valid inputs, like
ng-pattern="/^@[a-zA-Z0-9]+(?:,\s*@[a-zA-Z0-9]+)*$/"
See the regex demo
If you want to disallow leading and trailing whitespace, add ng-trim="false"
.
Pattern details:
-
^
- start of string -
@
- a literal@
symbol -
[a-zA-Z0-9]+
- 1+ alphanumerics -
(?:,\s*@[a-zA-Z0-9]+)*
- 0+ sequences of:-
,
- comma -
\s*
- 0+ whitespaces -
@[a-zA-Z0-9]+
- same as above
-
-
$
- end of string.
Author by
Steven.lin
Updated on June 29, 2022Comments
-
Steven.lin almost 2 years
I am struggling writing a Regex for angular ng-pattern to validate a form input field.An example of the possible inputs are below
Valid input:
@tag1,@tag2,@tag3 @tag1, @tag2, @tag3 @tag1
Invalid Input:
@tag 1 @tag 1, @tag2, @tag -3 @ta g1, @t ag2
Basically it should allow comma and comma whitespace, but not allow whitespace in between tags.
I have written a REGEX that matches all the invalid input, but when I use this in ng-pattern it does not do the correct validation.
Regex Built:
/((^, @|@\s+)|@*[a-zA-Z0-9]* +[a-zA-Z0-9])/g
Link: https://regex101.com/r/HMVdLD/1Any help is much appreciated!