【问题标题】:Java Email Validation for UTFUTF 的 Java 电子邮件验证
【发布时间】:2011-12-01 02:26:22
【问题描述】:

我需要确保电子邮件有效。而且我还需要检查其中没有奇怪的 UTF 字符。我不使用正则表达式验证它来验证它

^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$

但是如何检查它的 UTF 呢?

谢谢

【问题讨论】:

标签: java regex validation email-validation


【解决方案1】:

您是否试图确保它是有效的 w.r.t. RFC 5335 section 4.1?

如果是这样,您只能检查 byte[] 是否为有效的 UTF-8。尝试验证 UTF-16 代码单元序列 (Java chars) 或代码点是有效的 UTF-8 是没有意义的,因为 UTF-8 是字节字符串到代码点字符串的映射和 UTF -16 是来自代码单元的映射->unicode-scalar-values"Unicode Encoding Forms" 的第 3.9 节解释了这一切。

判断 byte[] 是否是格式良好的 UTF-8 序列的最佳方法是使用内置解码器之一,例如StandardCharsets.UTF8 或 Guava 等价物 Charsets.UTF8

【讨论】:

    【解决方案2】:

    如果您想确保您的电子邮件地址中只有 ASCII 字符,您可以使用该模式:

    "[^\\x00-\\x7F]"
    

    它将处理任何非ASCII字符。

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 2012-10-03
      • 2014-12-25
      • 2012-01-04
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多