几乎学习程序的童鞋,开始最怕的就莫过于正则表达式了,简单的还好,复杂的简直让你头疼。网上一堆邮箱正则表达式,但通过验证发现都有一些小bug,这个邮箱正则是根据目前域名命名规则以及长度写出的。
1,不做总长度判断,长度判断可以自己加上;
2,支持.net.cn,.com.cn这样的域名后缀;
3,邮箱名部分以字母或者数字开头,中间可以有“-”与“_”符号;
4,域名部分以字母或者数字开头,中间可以有“-”与“_”符号;
/**
* 自己修整的一个邮箱正则表达式
*/
echo '<meta charset="utf-8" />';
function c_email($email){
$reg='/^([a-zA-Z0-9]{1,20})(([\_\-\.])?([a-zA-Z0-9]{1,20}))*@([a-zA-Z0-9]{1,20})(([\-\_])?([a-zA-Z0-9]{1,20}))*(\.[a-z]{2,4}){1,2}$/';
if(preg_match($reg,$email))
return true;
return false;
}
$email = 'mail@lizhong.me';
$check_result = c_email($email);
if($check_result){
echo '邮箱格式正确';
}else{
echo '邮箱格式错误';
}
2012-08-10日更新
@ 以上方法在PHP中实现
@ 由于PHP的正则与JS的正则声明格式一样,因此可以在JS实现 |
|