如何替换eregi()

2022-03-29 00:00:00 regex php preg-match

我试着四处看看,以为我用preg_match算出来了,但是preg Match给了我错误:

警告:preg_Match():没有结束分隔符‘^’

这是我的原始代码,php说它已经贬值了:

if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $_POST['email'])) { 
    $erroR= "Invalid Email address"; 
} 

谁能解释一下结尾的分隔符‘^’是什么,以及如何添加它?谢谢@


解决方案

eregi()替换为preg_match(),并在正则表达式中添加分隔符。我在这里选择了标准/,但您可以使用其他字符。

if(!preg_match("/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/", $_POST['email'])) { 
    $erroR= "Invalid Email address"; 
} 

您收到此警告的原因...

警告:preg_match():没有结束分隔符'^'

...是因为preg_match()需要分隔符,并且它假定使用的是^,并且它不能与尾随的分隔符匹配。

相关文章