PHP验证邮箱与邮箱有效性验证

域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;
/内容/i 构成一个不区分大小写的正则表达式

 代码如下 复制代码

$email = "tanklo_--vehy@yahoo.com.cn";
    function check_email($email) {
       $pattern_test = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
       return  preg_match($pattern_test,$email);
    }
echo check_email($email);

上面的只能简单的验证邮件格式,下面一个更具体验证方法。

PHP如何验证:

 代码如下 复制代码

<?

//PHP验证邮箱格式的函数
function valid_email($email) {
// First, we check that there's one @ symbol, and that the lengths are right
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~.-]{0,63})|("[^(\|")]{0,62}"))$", $local_array[$i])) {
return false;
}
}
if (!ereg("^[?[0-9.]+]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
return false;
}
}
}
return true;
}

//应用示例

if(!valid_email($myeml)){
echo"<script>alert('Please enter a valid e-mail address');location.href='javascript:history.back()'</script>";
break;
}
?>

 

无意中就发现checkdnsrr函数那里就有了更精妙的例子,分享给大家!

 代码如下 复制代码

< ?php

function validate_email($email){

$exp = "^[a-z'0-9]+([._-][a-z'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";

if(eregi($exp,$email)){ //先用正则表达式验证email格式的有效性

if(checkdnsrr(array_pop(explode("@",$email)),"MX")){//再用checkdnsrr验证email的域名部分的有效性
return true;
}else{
return false;
}

}else{

return false;

}
}

?>

时间: 2024-10-28 20:30:02

PHP验证邮箱与邮箱有效性验证的相关文章

MySQL掌握密码有效性验证失败的处理方法

用windows账号登录成功后,右键实例,在"属性"窗口中, 转到"Security"(安全性)项, 查看"服务器身份验证"中设置确为"SQL Server和Windows身份验证模式",然后执行下面的语句启用sa用户, 同时更改sa的密码: EXEC sp_password 'sa',null,'sa' ALTER LOGIN sa ENABLE 结果执行出错: 消息 15116,级别 16,状态 1,第 1 行 密码有效性

详解ABP框架的参数有效性验证和权限验证_基础应用

参数有效性验证应用程序的输入数据首先应该被检验是否有效.输入的数据能被用户或其他应用程序提交.在Web应用中,通常进行2次数据有效性检验:包括客户端检验和服务端检验.客户端的检验主要是使用户有一个好的用户体验. 首先最好是在客户端检验其表单输入的有效性并且展示给客户端的那些字段输入是无效的.但是,服务器端的校验是更关键和不可缺失的(不要只做客户端检验而不做服务器端检验). 服务器端的检验通常是被应用服务(层)执行,应用服务(层)中的方法首先检验数据的有效性,然后才使用这些通过验证的数据.ABP的

iOS正则表达式验证手机号、邮箱、身份证号等_IOS

本文实例为大家分享了常用的iOS正则表达式,供大家参考,具体内容如下 #import "NSString+RegexCategory.h" @implementation NSString (RegexCategory) #pragma mark - 正则相关 - (BOOL)isValidateByRegex:(NSString *)regex{ NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCH

Ajax邮箱、用户名唯一性验证实例代码

废话不多说了,直接给大家贴代码了,具体代码如下所示: <script type="text/javascript"> $(function () { $("#txtEmail").blur(function () { $.ajax({ type: "post", url: "reg.ashx?email=" + $.trim($("#txtEmail").val()) + "&

javascript 电话,QQ,手机,身份证号,邮箱地址,邮政 正则表达式验证代码

javascript教程 电话,QQ,手机,身份证号,邮箱地址,邮政 正则表达式验证代码 <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>javascript 电话,QQ,手机,身份证号

asp.net注册用户名, 密码,手机号码, 邮箱在后台的验证怎么写啊

问题描述 asp.net注册用户名,密码,手机号码,邮箱在后台的验证怎么写啊 解决方案 解决方案二:注册名不重复不是脏字就行了,密码后台验证啥啊,前台验证达到一定复杂度就行了,后台存的至少是md5过的,手机号码和邮箱都可以用正则来验证解决方案三:引用1楼truecoffeefox的回复: 注册名不重复不是脏字就行了,密码后台验证啥啊,前台验证达到一定复杂度就行了,后台存的至少是md5过的,手机号码和邮箱都可以用正则来验证 后台也是可以用正则的但是一般都是前台验证的解决方案四:引用2楼daifei

yii2.0实现验证用户名与邮箱功能_php实例

本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下 视图signup.php代码: <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; /* @var $this yii\web\View */ /* @var $form yii\bootstrap\ActiveForm */ /* @var $model \frontend\models\SignupForm */ $this->title = '注册

java验证是否为邮箱正则表达式

java验证是否为邮箱正则表达式,方法很简单只要利用正则匹配他的邮箱规则就ok了.   string str="ceponline@yahoo.com.cn"; pattern pattern = pattern.compile("[\w\.\-]+@([\w\-]+\.)+[\w\-]+",pattern.case_insensitive); matcher matcher = pattern.matcher(str); system.out.println(ma

url地址有效性验证

问题描述 if(string.Compare(url.Substring(0,4),"http",true)!=0)url="http://"+url;varmyRequest=(HttpWebRequest)WebRequest.Create(url);myRequest.Method="HEAD";myRequest.Timeout=int.MaxValue;varres=(HttpWebResponse)myRequest.GetRespo