php - 使用正则表达式阻止某些电子邮件提供商

请不要对这个问题投反对票,因为我正在寻找的答案不是某人应该追求的答案。我完全知道这一点,但这不是我的主意,我只需要提供 :D

在 cakephp 中,我的模型中有以下数据条目:

    'email' => array(
        'email' => array(
            'rule' => array('email',false,'(^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$)')
        ),
    )

email规则是cakephp数据校验中常用的函数,第二个和第三个参数可选。第三个是正则表达式。我对给定的正则表达式字符串不满意,所以我添加了自己的。现在我想排除 Gmail、Hotmail 和 yahoo 地址。

如何更改正则表达式,使这些地址产生错误结果?我做对了。

最佳答案

您到底为什么要排除 gmail、hotmail 和 yahoo 地址?有很多人只有这些地址之一,没有其他地址。这是一个坏主意。如果您的目标是特定的“受众”,我建议您改为列出允许的域。

无论如何,这里有一个功能性正则表达式,它比您已有的要短。试试看:

\b[\w\.-]+@((?!gmail|googlemail|yahoo|hotmail).)[\w\.-]+\.\w{2,4}\b

https://stackoverflow.com/questions/6548210/

相关文章:

c - 如何在 Linux 中找到不同的内存段起始位置及其大小

c# - BinaryWriter 问题 - "code adds some byte betwee

.net - Base64 编码替代下划线

asp.net - 在 asp 的 gridview 中使用 eval 获取 this 对象

android - 如何在小部件中使用 ListView ?

delphi - 什么是重置(句柄,1)?

java - 在这种情况下应该使用哪个集合?

image - 禁用从 Canvas 下载图像

sql - ManyToManyField 中 Django 中对象子集的不同值

mongodb - 我可以在 MongoDB 中存储关系数据库结构吗