I have the following regex: /(\s?[^\s,]+@[^\s,]+.[^\s,]+\s?;)*(\s?[^\s,]+@[^\s,]+.[^\s,]+)/g
Could you tell me why it matches this string: "hNw6B@90.com;tesr" and doesn't match this one: "hNw6B@90.com; test" ?
It shouldn't match the first string. However if there is a valid email after the ; like test@abv.bg, it should be matched.
I will be very grateful if you could help me out.
You can use
^[^@\s;]+@[^\s;]+\.[^\s;]+(?:\s*;\s*[^@\s;]+@[^\s;]+\.[^\s;]+)*;?$
See the regex demo. Details:
^ - start of string[^@\s;]+ - zero or more chars other than @, whitespace and ;@ - a @ char[^\s;]+ - zero or more chars other than whitespace and ;\. - a dot[^\s;]+ - zero or more chars other than whitespace and ;(?:\s*;\s*[^@\s;]+@[^\s;]+\.[^\s;]+)* - zero or more repetition of a ; enclosed with zero or more whitespaces, and then the same pattern as above;? - an optional ;$ - end of string.