2011-06-07 1 views
1

Étant donné une chaîne, comment puis-je correspondre à tous les e-mails qui sont à l'intérieur "<>".JavaScript expressions régulières pour obtenir tous les e-mails d'une chaîne

Par exemple:

je peux avoir [email protected] et <[email protected]> et je veux seulement faire correspondre le [email protected].

Merci!

+0

votre chaîne ressemblerait-elle '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. De plus, regex n'est PAS la réponse à tout. Les courriels sont censés être validés en envoyant un courriel à cette adresse, et non en devinant ce qui est valide. Il y a beaucoup de raisons pour qu'ils ne soient pas valides. – jcolebrand

Répondre

2

Pour être vraiment complet, vous pouvez mettre en œuvre une expression régulière de RFC822, which describes valid email address formats, cependant, vous pouvez gagner du temps et des maux de tête en faisant quelque chose comme rapide et simple ceci:

var extractEmailAddress = function(s) { 
    var r=/<?(\[email protected][^\s>]+)>?/, m=(""+s).match(r); 
    return (m) ? m[1] : undefined; 
}; 
extractEmailAddress('[email protected]'); // => "[email protected]" 
extractEmailAddress('<[email protected]>'); // => "[email protected]" 

Bien sûr, cette fonction sera très permissive des chaînes qui pourraient même ressembler à une adresse e-mail, de sorte que l'expression régulière "r" pourrait être améliorée si la qualité est une préoccupation.

Questions connexes