删除电子邮件地址中的无效字符

时间:2012-12-26 21:47:59

标签: java regex string email

我正在尝试找出如何删除电子邮件地址中的所有无效字符。

Ex:email =“taeo͝'; st@yy.com”(。是电子邮件字符),结果应为:email =“taest@yy.com”

我正在使用以下电子邮件模式:

String email_pattern = "^[^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$]";

String modifiedEmail = email.replaceAll(email_pattern,"");

但是上面的代码给出的结果是:email =“aest@yy.com”,但预计“taest@yy.com”

任何建议或更好的方法都将受到赞赏。

3 个答案:

答案 0 :(得分:11)

这是一篇很好的博客文章,说明为什么你不应该过滤你的电子邮件地址: http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/

TL; DR:检查是否有@(可选择一段时间)并发送测试邮件 大卫建议使用这个正则表达式:

/.+@.+\..+/

答案 1 :(得分:0)

进一步思考: 您还可以测试未经身份验证使用的已知电子邮件地址提供商(例如http://trashmail.com/)。

答案 2 :(得分:0)

我通过使用模式匹配器来解决它。

email = "testo͝';@.com.my"   
String EMAIl_PATTERN = "[^a-zA-Z0-9!#$%&@'*+-/=?^_`{|}~.]+";
modifiedEmail = email.replaceAll(EMAIl_PATTERN, "");