我试着环顾四周,以为我通过使用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";
} 谁能解释一下结尾的分隔符“^”是什么,以及如何添加它。谢谢@
发布于 2012-02-09 10:44:37
用preg_match()替换eregi(),并在正则表达式中添加分隔符。我在这里选择了标准的/,但您也可以使用其他字符。
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():没有结束分隔符'^'
...is,因为preg_match()需要分隔符,并且它假定正在使用^,并且它不能匹配尾随的分隔符。
发布于 2012-02-09 10:45:58
在表达式前后添加一个正则表达式-- preg_replace需要一个分隔符来告诉它正则表达式的开始和结束位置。它可以是:
A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character.
Often used delimiters are forward slashes (/), hash signs (#) and tildes (~).所以这将会起作用:
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/"https://stackoverflow.com/questions/9204704
复制相似问题