我使用textarea
允许用户输入多个电子邮件地址,以逗号分隔。此外,很可能会有空格字符和换行符。
如何在PHP中检查/确保textarea
中的字符串仅包含有效的电子邮件地址(语法有效,无DNS检查),空格字符或换行符?电子邮件地址中可能不存在空格字符和换行符(无论如何都会破坏地址有效性的第一个限制)。
答案 0 :(得分:1)
function checkTextArea($textarea){
$textarea = str_replace(array("\r\n", "\r", " "), "", $textarea);
$textarea = explode(";", $textarea);
foreach($textarea as $res){
if(!filter_var($res, FILTER_VALIDATE_EMAIL)){
return false;
}
}
return true;
}
像这样的东西。您可以用逗号替换换行符/空格;如果用户忘记与来分开并使用空间。 如果你这样做,可能有多个;跟随彼此:如果($ res)为空,则不检查邮件有效性,只需忽略
答案 1 :(得分:0)
RegEx验证
// get your email list from your textbox
$emailList = "test@abc.com, myname@abc.com, php@account.com, test.com";
$ArrayList = explode(", ", $emailList);
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
foreach($ArrayList as $address)
{
if (preg_match($regex, $address))
{
print $address." Is valid Email<br>";
}
else
{
print $address." Is Invalid Email<br>";
}
}