我正在尝试找出如何删除电子邮件地址中的所有无效字符。
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”
任何建议或更好的方法都将受到赞赏。
答案 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, "");