我尝试环顾四周,认为我通过使用 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";
}
您收到此警告的原因...
Warning:
preg_match()
: No ending delimiter'^'
...是因为 preg_match()
需要分隔符,并且它假设正在使用 ^
,并且它无法匹配尾随分隔符。
关于php - 如何替换 eregi(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204704/