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

如何使用PHP preg_match函数验证Brainstake公司邮箱格式

修正Brainstake公司邮箱验证的正则表达式

你的问题出在当前使用的正则表达式对域名部分的匹配逻辑错误,导致无法正确识别something@brainstake.tech格式的邮箱。

原正则的问题分析

原正则/^[_a-z0-9-+]+(\.[_a-z0-9-+]+)*@[brainstake-]*(\.[tech]{2,})$/i存在两个核心错误:

  • [brainstake-]*是字符集合匹配,会匹配任意顺序的b/r/a/i/n/s/t/a/k/e/-字符(甚至重复或缺失),而不是完整的brainstake字符串。
  • (\.[tech]{2,})中的[tech]同样是字符集合,会匹配t/e/c/h中的任意字符2次以上(比如.tt、.ec都能通过),并非固定匹配.tech后缀。

修正后的正则表达式

将域名部分改为固定匹配brainstake.tech,修正后的正则如下:

$pattern = "/^[_a-z0-9-+]+(\.[_a-z0-9-+]+)*@brainstake\.tech$/i";

完整修正后的代码

private function validateEmail(){  
    $result = null;  
    // 仅匹配 brainstake.tech 域名的邮箱
    $pattern = "/^[_a-z0-9-+]+(\.[_a-z0-9-+]+)*@brainstake\.tech$/i";
    if (!preg_match($pattern, $this->email)){  
        $result = false;  
        echo "仅允许使用Brainstake公司邮箱。";  
    }  
    else{  
        $result = true;  
    }  
    return $result;  
}  

if ($this->validateEmail() == false){  
    echo "请使用正确的邮箱格式";  
    header("location: ../pages/sign-up.php?error=wrongEmailFormat");  
    exit();  
}  

验证说明

  • 该正则会严格匹配任意合法邮箱本地部分 + @brainstake.tech的格式,比如john.doe@brainstake.tech、jane+test@brainstake.tech都能通过验证。
  • 非brainstake.tech域名的邮箱(如test@gmail.com)或格式错误的邮箱(如brainstake.tech、test@brainstake)都会被拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:56:19