【问题标题】:How to ensure emails are validated according to the new TLD如何确保根据新 TLD 验证电子邮件
【发布时间】:2015-10-08 14:35:08
【问题描述】:
我正在使用弹簧验证:
@NotNull
@Size(max = 128, min = 6)
@Email
private String username;
但我想确保新 TLD 得到尊重。 Spring 是否甚至会查看电子邮件域 TLD 并确保它们得到遵守?
举个例子:我想要验证以下内容:joe@emperor.clothing
【问题讨论】:
标签:
spring-mvc
hibernate-validator
spring-validator
【解决方案1】:
你到底在追求什么?什么意思:
但我想确保新 TLD 得到尊重
@Email 是 Hibernate Validator 提供的 Bean Validation 约束,它将验证给定电子邮件在语法上是否符合 RFC 2822。它通过正则表达式来实现。
EmailValidator 的 javadocs 说:
有效电子邮件的规范可以在 RFC 2822 和一个
可以想出一个匹配所有有效电子邮件的正则表达式
地址按照规范。然而,正如本文所讨论的那样
实施 100% 合规的电子邮件不一定实用
验证器。这种实现是一种折衷,试图匹配大多数
电子邮件而忽略例如带有双引号的电子邮件或
厘米。
这也意味着,没有建立互联网连接,例如验证顶级域是否实际存在(如果这就是您的意思)。