我正在尝试在mail()中为Bcc创建一个preg_match()。 我创建了下面的preg_match()
if(empty($mail_bcc))
{
$_SESSION['error'] .= "<li>Please enter BCC email id.</li>";
$error = 1;
}
else if(!preg_match('/^\s*[A-Za-z0-9@. ,]+\s*$/',$mail_bcc)|| preg_match('/^ /',$mail_bcc) || preg_match('/ $/',$mail_bcc))
{
$_SESSION['error'] .= "<li>Please enter a valid BCC email id.No spaces are allowed and Separate BCC email addresses with commas (,)</li>";
$error = 1;
}
为此我得到的结果
但我想强制要求@。 对于以下情况,它应该返回False / Error
答案 0 :(得分:2)
要在像你这样的正则表达式中要求至少一个@
,最简单的方法是使用(?=[^@]*@)
正向前瞻:
'/^(?=[^@]*@)\s*[A-Za-z0-9@. ,]+\s*$/'
^^^^^^^^^^
(?=[^@]*@)
构造将开始寻找除@
([^@]*
)以外的任何0 +字符,直到字符串开头的第一个@
({ {1}})。如果找到^
,将搜索其余的消费模式,否则,正则表达式引擎将立即使匹配失败。