如何检查字符串是否有效的电子邮件地址和分隔符

时间:2013-11-07 15:06:49

标签: php regex

我使用textarea允许用户输入多个电子邮件地址,以逗号分隔。此外,很可能会有空格字符和换行符。

如何在PHP中检查/确保textarea中的字符串仅包含有效的电子邮件地址(语法有效,无DNS检查),空格字符或换行符?电子邮件地址中可能不存在空格字符和换行符(无论如何都会破坏地址有效性的第一个限制)。

2 个答案:

答案 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>";
    }
}