You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 14 Flow EmailField 校验异常:特殊邮箱格式被判定为合法

问题解答:Vaadin 14.6.8 EmailField 宽松校验问题

该类邮箱格式的合法性判定

你提到的barney.@gmail.com、.@gmail.com均不属于合法的电子邮箱地址:

  • 按照RFC 5322官方邮件格式规范,邮箱地址@符号前的本地部分,禁止出现开头/结尾直接是点号、连续多个点号的情况,上述两个案例都违反了该规则。

Vaadin EmailField 判定合法的原因

Vaadin 14.x 版本的EmailField组件默认直接复用浏览器原生<input type="email">的校验逻辑,而原生校验的规则设计得较为宽松,允许本地部分首尾带点的格式通过,才会出现你遇到的情况。

修复方案

如果需要严格符合通用邮箱使用规范的校验,可以为组件添加自定义校验器覆盖默认逻辑,参考代码如下:

EmailField emailField = new EmailField();
// 自定义严格校验规则
emailField.addValidator(email -> {
    if (email == null || email.isBlank()) {
        return ValidationResult.ok();
    }
    // 正则禁止本地部分首尾带点、连续点号,符合绝大多数邮件服务的注册规则
    String strictEmailPattern = "^[a-zA-Z0-9_+\\-]+(?:\\.[a-zA-Z0-9_+\\-]+)*@[a-zA-Z0-9\\-]+(?:\\.[a-zA-Z0-9\\-]+)*\\.[a-zA-Z]{2,}$";
    return email.matches(strictEmailPattern) ? ValidationResult.ok() : ValidationResult.error("请输入合法的邮箱地址");
});

内容的提问来源于stack exchange,提问作者Barney_IT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:42:03