栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

匹配无效电子邮件地址的javax.validation.constraints.Email

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

匹配无效电子邮件地址的javax.validation.constraints.Email

.
根据验证者,不带电子邮件的电子邮件可能被视为有效。
通常,验证器实现(这里可能是Hibernate Validator)对电子邮件的限制不是很严格。
例如
org.hibernate.validator.internal.constraintvalidators.AbstractEmailValidator
javadoc指出:

有效电子邮件的规范可以在RFC 2822中找到,并且可以提供一个正则表达式,该规范匹配符合规范的所有有效电子邮件地址。 但是,正如
本文所讨论的,实现100%兼容的电子邮件验证器不一定实际。
此实现是一种折衷方案,它尝试匹配大多数电子邮件,而忽略例如带有双引号或注释的电子邮件。

另外,我注意到HTML Validator用于电子邮件的类似情况。

因此,我认为您实际遇到的行为是预期的。
关于你的问题:

我需要为@Email(regex =“”)传递自己的正则表达式实现吗?

确实。如果要使验证更具限制性,则别无选择。
作为替代方案,通过约束组合创建自己的验证程序的答案非常有趣,因为它是DRY(您可以重复使用自定义,

ConstraintValidator
而无需在每次指定要包含的模式时都进行指定),并且可以重复使用
@Email

ConstraintValidator

@Email(message="Please provide a valid email address")@Pattern(regexp=".+@.+\..+", message="Please provide a valid email address")@Target( { METHOD, FIELD, ANNOTATION_TYPE })@Retention(RUNTIME)@Constraint(validatedBy = {})@documentedpublic @interface ExtendedEmailValidator {    String message() default "Please provide a valid email address";    Class<?>[] groups() default {};    Class<? extends Payload>[] payload() default {};}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号