我正在使用这个正则表达式在php中验证电子邮件(基于here)。
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;我的问题是,如何验证由分隔符分隔的电子邮件列表的输入。假设分隔符是",“或";”或",“或";”。
我想我应该加上一些类似的东西。
(\s*(;|,)\s*|\s*$)但它不起作用。
发布于 2013-01-15 05:26:51
通过一个模块来验证电子邮件比使用一个简短的正则表达式要好得多。请参阅http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
但幸运的是,php有一个验证器:
<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "This (email_a) email address is considered valid.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "This (email_b) email address is considered valid.";
}
?>发布于 2013-01-15 05:27:45
不要使用正则表达式来验证电子邮件,PHP有一个用于此filter_var()的函数:
$email = 'joe@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//valid
}else{
//not
}您可以修改此代码并使用explode(',',$email)来验证多个电子邮件。
发布于 2013-01-15 05:26:44
冒着只接受纯正则表达式解决方案时无法使用的答案的风险,出于几个原因,我建议使用带有分隔符的explode,继续迭代数组并依次验证每个电子邮件:
https://stackoverflow.com/questions/14326817
复制相似问题