通过正则表达式阻止 php 中特定类型的电子邮件地址

block specific type of email address in php via regex

我使用以下正则表达式模式来验证工作正常的电子邮件地址。

/^[^\@]+@.*\.[a-z]{2,6}$/i

但问题是如果输入 abc.abc@yahoo.com 之类的电子邮件,我想生成错误。实际上所有这些电子邮件都是无效的,它们的字符与 **.** 之前和之后相同,例如 xyz.xyz@gmail.com 无效,qwe.qwe@hotmail.com 无效

您可以在正则表达式中使用 back-reference 来测试两个部分是否相同。在 PHP 你会写:

if (preg_match('/^(\w+)\.@.*/', $email)) {
    echo "That's a spammy name";
}