I am writing a regular expression(regex) for adding multiple email ids in an input box with following conditions:
Do you want leading/trailing spaces allowed on the whole string, or around each individual address?
For the former your regex should be
/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([,.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/
and for the latter
/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25}\s*)+([,.](\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/
AngularJS trims the input by default, so you need to use ng-trim="false"
in order to pass leading and trailing whitespace to your pattern
regex.
See documentation:
ngTrim (optional)
If set to
false
Angular will not automatically trim the input. This parameter is ignored forinput[type=password]
controls, which will never trim the input.(default: true)