Java 电子邮件 UTF 验证

标签 java regex validation email-validation

我需要确保电子邮件有效。我还需要检查其中是否有奇怪的 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 呢?

谢谢

最佳答案

您是否想确保它是有效的? RFC 5335 section 4.1

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

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

关于Java 电子邮件 UTF 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655289/

相关文章:

java - 采用 Object 参数的通用类 - Java

java - 正确的 JNI 转换从 jobjectarray 获取数组项到单独的 const char

javascript - ModelState.AddModelError 不在 asp.net.core RAZOR 页面中显示任何消息

.net - WPF 数据绑定(bind)和验证规则最佳实践

ruby-on-rails - Rails : Validating that start is before stop, 日期时间

java - java导入xlsx批量数据

windows-7 - 是否可以在 Windows 7 上同时安装 32 位和 64 位 Java?

python - 围绕下划线的三个python正则表达式

regex - 计算用户自定义功能Google Apps脚本输入的值的范围

javascript - 使用正则表达式捕获字符串中的所有内容