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

将前端JavaScript邮箱校验正则表达式转换为PHP后端校验正则

把前端JS邮箱正则转换为PHP后端校验正则

嘿,这事儿很简单,咱们来一步步搞定转换:

首先你要知道,前端用RegExp构造函数创建正则时,因为是字符串参数,所以里面的反斜杠必须写两次(\\)来转义;而PHP里直接用正则定界符(比如常用的/)时,只需要保留单个反斜杠就行,不用额外转义。

转换后的PHP正则表达式

$pattern = '/^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$/';

在PHP中使用它校验邮箱的示例

你可以借助preg_match()函数来完成校验,写个简单的封装函数更方便复用:

function validateEmail($email) {
    $pattern = '/^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$/';
    // preg_match匹配成功返回1,失败返回0,所以用严格等于判断
    return preg_match($pattern, $email) === 1;
}

// 测试示例
$testEmail1 = 'user.name_123@sub-domain.com';
$testEmail2 = 'invalid-email@.com';

echo validateEmail($testEmail1) ? '邮箱格式正确' : '邮箱格式错误'; // 输出:邮箱格式正确
echo '<br>';
echo validateEmail($testEmail2) ? '邮箱格式正确' : '邮箱格式错误'; // 输出:邮箱格式错误

额外说明

这个PHP正则和你前端的逻辑完全一致:

  • 允许邮箱前缀包含字母、数字、下划线、连字符,还支持带点的多级前缀(比如john.doe)
  • 域名部分支持字母、数字,以及多级子域名(比如mail.company.co.uk)
  • 要求顶级域名长度至少2位(比如.com、.org)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:38:57