find-emails-in-string
Version:
Takes a string containing email addresses and returns array of emails in original string
28 lines (24 loc) • 882 B
JavaScript
var findEmailsInString = function(){
return {
findEmails: function(string){
var wordArray = string.split(" ");
var result = [];
wordArray.forEach(function(word){
if (word.match(/[@]/) !== null) {
if (word[word.length - 1].match(/[,:;.!?]/)) {
word = word.slice(0, -1);
}
if (isValidEmail(word)) {
result.push(word);
}
}
});
return result;
}
};
};
var isValidEmail = function(word) {
var regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return regex.test(word);
};
module.exports = findEmailsInString().findEmails;