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

实现企业邮箱输入校验,拒绝Gmail/Yahoo等公共邮箱服务商地址

实现企业邮箱校验(拦截公共邮箱服务商)

需求是对邮箱输入框做校验,仅允许合法企业邮箱(格式如 yourname@firmname.com),拒绝Gmail、Yahoo、Bing、Yopmail、AOL等公共邮箱地址。

核心思路

利用正则表达式的负向预查特性,在匹配标准邮箱格式的同时,排除指定的公共邮箱域名。

完整实现代码

$(document).ready(function() {
    $('#customer_email').on('input', function() {
        // 获取输入的邮箱值并去除首尾空格
        var email = $(this).val().trim();
        // 定义需要拦截的公共邮箱域名黑名单
        var blockedDomains = ['gmail.com', 'yahoo.com', 'bing.com', 'yopmail.com', 'aol.com'];
        // 构建正则表达式:匹配标准邮箱格式,同时排除黑名单域名
        var businessEmailRegex = new RegExp(
            '^[a-zA-Z0-9._%+-]+@(?!(' + blockedDomains.join('|') + '))[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$',
            'i' // 忽略大小写,避免区分GMAIL.COM和gmail.com
        );

        // 校验邮箱状态
        if (email === '' || businessEmailRegex.test(email)) {
            // 空值或合法企业邮箱,隐藏错误提示
            $('.email-invalid-validation-msg').addClass('d-none');
        } else {
            // 非法邮箱(公共域名或格式错误),显示错误提示
            $('.email-invalid-validation-msg').removeClass('d-none');
        }
    });
});

代码关键说明

  • 黑名单维护:blockedDomains 数组可直接添加/移除需要拦截的域名,无需修改正则主体,维护更便捷。
  • 正则逻辑:
    • ^[a-zA-Z0-9._%+-]+:匹配邮箱用户名部分,覆盖常见合法字符。
    • @(?!(gmail.com|yahoo.com|...)):负向预查规则,确保@后的域名不在黑名单列表内。
    • [a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$:兼容多级企业域名(如company.co.uk这类格式)的匹配。
  • 大小写兼容:正则添加i标志,避免用户输入大写域名(如GMAIL.COM)导致校验失效。
  • 空值处理:保留空值的合法状态,避免用户未输入时就触发错误提示。

额外建议

  • 若需拦截更多公共域名,直接往blockedDomains数组追加即可,比如'outlook.com'、'hotmail.com'等。
  • 建议结合表单提交时的后端二次校验,防止用户绕过前端校验直接提交非法数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:22:29