我的PHP形式中有这段代码:
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|''-|''.)+@(([a-z0-9_]|''-)+''.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};
我的本地服务器给我一个错误:
函数 eregi() 已弃用
所以我将我的代码修改为:
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|''-|''.)+@(([a-z0-9_]|''-)+''.)+[a-z]{2,7}$";
return (preg_match($pattern,$email)) ? true : false;
};
现在我收到此错误:
警告:preg_match() [function.preg-match]:未找到结束分隔符"^"
知道吗?
你应该以 /
开头正则表达式,也以 /
结尾。
喜欢:
$pattern = "/^([a-z0-9_]|''-|''.)+@(([a-z0-9_]|''-)+''.)+[a-z]{2,7}$/";
添加分隔符。
$pattern = "/^([a-z0-9_]|''-|''.)+@(([a-z0-9_]|''-)+''.)+[a-z]{2,7}$/";
在这种情况下,我使用 /
作为分隔符。它在开头发生一次,在结尾发生一次。
出现在正则表达式本身中,则必须对其进行转义,并且不应充当分隔符,而应充当普通匹配字符。因此,正则表达式中的每个/
都必须转义到'/
(当然,分隔符除外)。但是您的正则表达式中没有任何内容。