在过去的几天里,我遇到了同样的问题。在网上研究并检查了一些东西后,我发现:
- 关键点:Microsoft Outlook、Yahoo Mail、Apple iCloud ID
- 点不重要:Gmail、Facebook ID
- 严禁点:推特
来源:一篇关于 Slate 的文章
我得出的结论是,大多数用户使用微软、谷歌或雅虎提供的服务。所以我可以有一个像这样的特定于应用程序的正则表达式。
var eml_exp = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@(gmail.com)$/i;
if(eml_exp.test("email@addrss"))
//if it's a gmail address, then remove periods from local part and also anything
// after `+` sign . Then compare the address in your existing user table,
// if you find it unique or unused then let the user to register.
您也可以阅读其他已知服务的手册并根据它们进行实施。
“不要忘记开源你的工作:p”
更新
根据这个 SO questionAdding + text before the @ in an email,您可能会阻止使用+
符号您的整个问题,我的问题将得到解决。