$string ='"Test User" <test@test.com>,"Another" <another@test.com>,"aeer" <whateveryourmail@gmail.com>';
我已经成功将这段名称和电子邮件地址拆分为此代码
preg_match_all('!"(.*?)"\s+<\s*(.*?)\s*>!', $string, $matches);
问题是,我无法验证电子邮件地址,虚假的电子邮件地址也会匹配。
如何过滤有效的电子邮件,还要拆分姓名和电子邮件地址?
答案 0 :(得分:5)
您可以使用一些可用的邮件地址解析器,例如:
可选择使用FILTER_VALIDATE_EMAIL
通过filter_var()
(或一个针对数组的of its permutations)过滤输出。
答案 1 :(得分:1)
电子邮件地址验证可以通过两种方式完成:检查@和a。并假设它是有效的。用户知道他们的电子邮件地址,如果他们输错了,这不是我们的业务。如果你想确定你是一个好的电子邮件地址检查器,那么只有一个正确的正则表达式用于验证:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
答案 2 :(得分:0)