Как получить адрес электронной почты из строки

Я ищу способ извлечь все адреса электронной почты из заданной строки. Например: если у меня есть строка "AB CD [ABCD@gmail.com]", я хочу получить только "ABCD@gmail.com".

Я думаю, что я должен использовать функцию сравнения RegExp и String, но я не уверен, как.

Есть идеи?

2 ответа

Решение

String.match это действительно путь

var email:String = "foo foo bar@barbar.com sploof";
var matches:Array = email.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/g); 

При этом используется регулярное выражение для соответствия RFC2822 из регулярных выражений сообщества regexr.

Я предлагаю вам прочитать здесь о правильном регулярном выражении для соответствия электронным письмам. И да, вы должны использовать match функции вашего языка, но имейте в виду, что вы должны адаптировать свое регулярное выражение к вашему шаблону электронной почты, как, например, в этом случае вы можете включить наличие [ а также ],

Я также советую использовать Regex Buddy, чтобы попробовать и протестировать регулярные выражения, это лучший инструмент из всех, которые я знаю.

Другие вопросы по тегам