在PHP中使用preg_match()验证带有正则表达式的电子邮件时出现问题
我无法在PHP中使用在PHP中使用preg_match()验证带有正则表达式的电子邮件时出现问题,php,regex,Php,Regex,我无法在PHP中使用preg_match()来验证电子邮件地址。我已经用这个工具测试了我在互联网上找到的正则表达式,它与我在PHP应用程序上使用的输入一样可以正常工作 正则表达式: ^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$ Regexer: 我在PHP中这样应用它: $email = "local@test.com"; $pattern = "/^([a-z0-9\+_\-]+)(\.[a-z0-9\+
preg_match()
来验证电子邮件地址。我已经用这个工具测试了我在互联网上找到的正则表达式,它与我在PHP应用程序上使用的输入一样可以正常工作
正则表达式:
^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$
Regexer:
我在PHP中这样应用它:
$email = "local@test.com";
$pattern = "/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix";
if (false == preg_match($pattern, $email))
echo "false";
当然,这封邮件和其他我测试过的邮件都是假的。我认为表达式的格式很好,因为我可以在regexer上测试它,并且它可以工作。我申请错了什么
提前谢谢你 我不确定您的代码中有什么错误,但这里有一个功能齐全的php函数,用于检查电子邮件地址:
function is_validemail($email)
{
return preg_match('/^[\w.-]+@([\w.-]+\.)+[a-z]{2,6}$/is', $email);
}
$email = "local@root.ws";
if(is_validemail($email)) { echo ("email validated"); } else { echo ("invalid email given"); }
希望有帮助 反斜杠字符需要通过如下方式加倍来正确转义:
$pattern = "/^([a-z0-9\\+_\\-]+)(\\.[a-z0-9\\+_\\-]+)*@([a-z0-9\\-]+\\.)+[a-z]{2,6}$/ix";
使用此模式,preg_match正确返回1。无法复制。正则表达式没问题。示例代码对我来说很好。对我来说很好:@SirDarius:谢谢。这就是问题所在!:)-使用PHP的本机
filter\u var
而不是通常不使用的正则表达式。只有在反斜杠前面加上另一个反斜杠、双引号、$、八进制文字或一个ascii转义符时,才会去除反斜杠\r\n\t<代码>打印“\”将打印\。
虽然反斜杠转义不是强制性的,但强烈建议在双引号字符串中执行此操作,尤其是在您可能意外插入导致创建有效转义序列的字符时。