排除preg_match php中的单引号

排除preg_match php中的单引号,php,Php,此功能应验证有效电子邮件,并应排除带有单报价的电子邮件 function _validate_email($email) { if (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,9}$/ix", trim($email))) { return FALSE; } return TRUE; } 排除单引号的模式应该是什么?我通过编辑

此功能应验证有效电子邮件,并应排除带有单报价的电子邮件

 function _validate_email($email) {
     if (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,9}$/ix", trim($email))) {
            return FALSE;
        }

    return TRUE;
}

排除单引号的模式应该是什么?

我通过编辑下面的函数得到:

function _validate_email($email) {
     if (!preg_match("/^([a-z0-9\+_\-\']+)(\.[a-z0-9\+_\-\']+)*@([a-z0-9\-]+\.)+[a-z]{2,9}$/ix", trim($email))) {
            return FALSE;
        }

    return TRUE;
}

不要重新发明轮子:
filter\u var($email,filter\u VALIDATE\u email)
@AlexHowansky我注意到
filter\u var
允许一封带有单引号(
filter\u var(“foo”)的电子邮件bar@example.com,过滤(验证电子邮件);
)。我认为这在电子邮件地址中是有效的,但OP可能出于某些原因有特殊要求。@AlexHowansky感谢您指出
filter\u var
,但在验证电子邮件时需要严格,这就是为什么在这种情况下使用preg\u match。请定义“严格”的含义。这是验证电子邮件的糟糕方法。例如,您允许在本地部分使用超过64个字符的无效地址,而在TLD中拒绝使用超过9个字符的有效地址。