检查email地址格式的代码

这是一个完全符合RFC2822和RFC2821的代码。只检查单个email地址。
function check_email_address($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;
}
RFC2822:定义了email的格式
http://www.faqs.org/rfcs/rfc2822.html
RFC2821:定义了email中@前后的用户名和服务器名的最大长度,4.5.3.1节
http://www.faqs.org/rfcs/rfc2821.html
另外RFC2234定义了ABNF和一些常用的terminal:
http://www.faqs.org/rfcs/rfc2234.html
网上大多数的邮件地址检查代码都没有按照这些RFC来写。
另外还可以加上检查邮件服务器是否存在的代码。这个在网上有的是。

时间: 2024-08-02 09:03:21

检查email地址格式的代码的相关文章

检查Email地址的比较完善的正则表达式函数

比较|函数|正则 下面的函数可以对Email地址格式进行检查,只有形如:abc@abc.abc,abc@abc.abc.abc和abc@abc.abc.abc.abc状的串才能通过检查,如下面这些非法地址都通不过:@abc@163.net,abc@163..net,abc@163.net.,abc@163@net等等都能剔除出来. 邮件地址就这几种格式吧?比如:swuse@yeah.net,liaojiayuan@btamail.net.cn,abc@public.yj.gd.cn还有没有更长的

通过.NET实现后台自动发送Email功能的代码示例

原文:通过.NET实现后台自动发送Email功能的代码示例   通过.NET实现后台自动发送邮件功能的代码,可以将一些基础信息放到web.config文件中进行保存: Web.config文件信息段: <system.net> <mailSettings> <smtp deliveryMethod="Network" from="待发送邮箱地址"> <network host="待发送邮箱SMTP地址"

asp.net ajax检查用户名是否存在代码

原文  asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web窗体,命名为 Default.aspx 创建 XMLHttpRequest 对象所有现代浏览器 (IE7+.Firefox.Chrome.Safari 以及 Opera) 都内建了 XMLHttpRequest 对象. 通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpReq

有没有检查hive sql的代码检查工具

问题描述 有没有检查hive sql的代码检查工具 有没有工具,可以批量的检查hive sql代码的执行效率,并提供出建议. 解决方案 长远设想,把如下的优化方案做成通用的hive优化方法 采样log表,哪些memberid比较倾斜,得到一个结果表tmp1.由于对计算框架来说,所有的数据过来,他都是不知道数据分布情况的,所以采样是并不可少的.Stage1 数据的分布符合社会学统计规则,贫富不均.倾斜的key不会太多,就像一个社会的富人不多,奇特的人不多一样.所以tmp1记录数会很少.把tmp1和

js 检查是否为网址代码

在很多的时间需要检查是否为网址代码,验证url是否为正确的格式哦,下面提供一款js验证url函数,他可以验证https教程|http|ftp|rtsp|mms,还有端口. **      * 检查是否为网址      *      * @param {}      *            str_url      * @return {boolean} true:是网址,false:<b>不是</b>网址;      */      this.isurl = function(s

php 检查email电子邮件函数

  以前写的一个PHP表单电子邮件发送程序,其中采用如下方法来验证电子邮件地址格式是否正确:  代码如下   eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9_-]+.[a-z0-9_-]+.*", $email) 后来发现类似于将.误写为,的电子邮件地址也能通过验证,例如user@126,com.经过检查,发现它实际上只验证了用户名部分,所以又在网上找到一个教程,其中给出的例子如下:  代码如下   eregi('^[_a-z0-9-]+(.[_a

php 检查email电子邮件函数(奇葩写法)

以前写的一个PHP表单电子邮件发送程序,其中采用如下方法来验证电子邮件地址格式是否正确:  代码如下 复制代码 eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9_-]+.[a-z0-9_-]+.*", $email) 后来发现类似于将.误写为,的电子邮件地址也能通过验证,例如user@126,com.经过检查,发现它实际上只验证了用户名部分,所以又在网上找到一个教程,其中给出的例子如下:  代码如下 复制代码 eregi('^[_a-z0-9-]+(

php中检查email完整性

<?php if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]$",$email)) { echo "您的 E-Mail 通过初步检查"; } ?>  在这句话里,首先是应用了一个eregi函数,这个函数还算好理解.随便找本书,就能给你一段解释:  语法: int ereg(string pattern, string string, array [regs]);  返回值: 整数/数组  本函数以

一些有关检查数据的JS代码

js|数据 这些JS代码都是一些在表单提交时经常用到的代码,大部分代码也都是用正则表达式写的! //去左空格; function ltrim(s){  return s.replace( /^\s*/, ""); } //去右空格; function rtrim(s){  return s.replace( /\s*$/, ""); } //左右空格; function trim(s){  return rtrim(ltrim(s)); } //是否为空值; fun