2011-09-08 63 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