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

PHP使用preg_match提示No ending delimiter '^'报错如何解决

报错原因

PHP的preg_match等PCRE系列正则处理函数,要求传入的正则表达式必须首尾包裹相同的分隔符(常用分隔符为/、~、#等)。你当前的正则直接以^开头,PHP会将首个字符^识别为正则的分隔符,遍历到正则末尾都没有找到第二个匹配的^作为结束分隔符,因此抛出该报错。

解决方法

有两种可行的修复方案:

方案1:给现有正则添加分隔符

只需要在你写的正则首尾添加/作为分隔符即可,修正后代码如下:

function valid_email($address)
{
  // check an email address is possibly valid
  if (preg_match('/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+[a-zA-Z]+$/', $address))
    return true;
  else 
    return false; 
}

方案2(更推荐):使用PHP内置邮箱验证过滤器

自己编写的邮箱正则很容易遗漏合法邮箱的边界情况(比如带+号的别名邮箱、多段顶级域名、特殊字符合规邮箱等),直接使用PHP内置的filter_var函数搭配FILTER_VALIDATE_EMAIL过滤器验证邮箱,可靠性更高,代码也更简洁:

function valid_email($address)
{
  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;
}

内容的提问来源于stack exchange,提问作者Ramil E. Andaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:42:02