I am using this regex to match email addresses in a string.
Everything works fine here: http://regexr.com?31e5a
with this regex:
([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})
But when I am trying to use it with javascript, I am getting only the first email address, not all of them.
Here is my code:
var emailsString = 'aaaaaaa@bbbb.com xxxxxxx cccccc@dddd.com';
var emails = emailsString.match(/([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})/)[0];
Ad here, I am getting only the first email.
If you can help me, thank you.
You need to add a ‘g’ modifier:
Also, as mentioned elsewhere in this post, your regex does not match all valid emails. Matching valid emails with regex is actually a pretty difficult problem, but to start with, the TLD component can be longer than 4 characters so you should adjust that accordingly.
My recommendation is to use the other regex mentioned here in combination with the /g modifier to get all matches.