几乎学习程序的童鞋,开始最怕的就莫过于正则表达式了,简单的还好,复杂的简直让你头疼。网上一堆邮箱正则表达式,但通过验证发现都有一些小bug,这个邮箱正则是根据目前域名命名规则以及长度写出的。
- 不做总长度判断,长度判断可以自己加上
- 支持
.net.cn
和.com.cn
这样的域名后缀 - 邮箱名部分以字母或者数字开头,中间可以有
-
与_
符号 - 域名部分以字母或者数字开头,中间可以有
-
与_
符号
<?php
/**
* 自己修整的一个邮箱正则表达式
* 琼台博客 www.qttc.net
*/
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 = 'hi@example.com';
$check_result = c_email($email);
if($check_result){
echo 'Success';
}else{
echo 'Error';
}
// Output: Success