我的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]:找不到结尾分隔符'^'
有什么想法吗?
答案 0 :(得分:1)
添加分隔符。
$pattern = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$/";
在这种情况下,我使用/
作为分隔符。它在开始时发生一次,在结束时发生一次。
请注意,如果它出现在正则表达式本身中,则必须转义分隔符,并且不应该作为分隔符,而是作为正常匹配的char。因此,正则表达式中的每个/
都必须转义为\/
(当然除了分隔符)。但你的正则表达式中没有任何内容。
答案 1 :(得分:1)
您应该使用/
开始正则表达式,并以/
结束。
像:
$pattern = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$/";