2011-09-08 64 views
0

作为User模型的一部分,我想阻止电子邮件地址中的某些域名,顶级域名和关键字注册。块域验证?

例如,我可能想要阻止任何包含qq.com.plhostingcoupons的电子邮件地址。

可能有数十个域名,顶级域名和关键字。

那么验证者会做些什么呢?我正在问更多的东西的正则表达式,而不是如何设置自定义验证器。

这个特殊的应用程序是Rails 2.3.4。

回答

0

/\w+(.com|.org|.pl)/ =〜 “[email protected]

\ W + - 是任何字字符一次或多次
(.COM | .ORG | .pl) - .com或.org或.pl

如果不匹配,此表达式将返回匹配的索引或nil。
您可以细化表达式以完全匹配您正在查找的部分。另一种做法是将电子邮件分解为正则表达式组,并仅评估您需要的组,例如延期。

+0

似乎'.'工作不正确。 'example.com'与'.pl'匹配http://rubular.com/r/Bybza8Ml5D – Shpigford

+0

此外,它似乎没有匹配字符串。例如,我想阻止“托管”,但freehosting @ something.com与主机不匹配,因为在该字符串开始之前有字母。 – Shpigford