js email 电子邮箱地址验证程序

原代码是这样的:

 代码如下 复制代码

function isValidMail(sText){
 var reMail = /^(?:w+.?)*w+@(?:w+.?)*w+$/;
 return reMail.test(sText);
}

似乎

这样验证像sofish@163.com这样的邮箱是没问题的。但,由于仔细看一下在AT(@)后面的非捕获性引用中,使用的是*(出现任意次):

 代码如下 复制代码

var reMail = /^(?:w+.?)*w+@(?:w+.?)*w+$/;

那么,也包括出现0次,这样的话。像sofish@163com这样的邮箱也是通过验证的。 显然,"."是必须至少出现一次的,因此,而"+"才表示至少出现一次。但这里,在AT后面,我们可以写像163.com.cn这样的结尾,但直接改成"+"的话,这样163..com.cn也可以通过验证。下面是我的方法:

 代码如下 复制代码
function isValidMail(sText) {
 var reMail = /^(?:w+.?)*w+@(?:w+.)+w+$/;
 alert(reMail.test(sText))
}

规定"."号只出现一次。然后在非捕获引用后面,让其他至少显示1次,再以任意的字符结束。不过,这里的"w"是包括下划线的,也就是说,像 sofish@163_.com_这样的邮件也是可能通过难的,显然,这是一个不合法的邮件,在AT后面的"."号后前,是不可以出现下划线的,而后面,只能是英文字母的(至少目前我没有见过用后面是数字的域名)。并且,这里应该注意到的是,"w"所代表的字符包括下划线,不用缩写是这样的:

[a-zA-Z_0-9]因此,上面的代码可以这样进行改装:

 代码如下 复制代码

function isValidMail(sText) {
 var reMail = /^(?:[a-zd]+[_-+.]?)*[a-zd]+@(?:([a-zd]+-?)*[a-zd]+.)+([a-z]{2,})+$/i;
 alert(reMail.test(sText))
}

实例

 代码如下 复制代码

<script>
function validate()
{
 var pattern=/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
 var email = document.getElementById("mail").value;

 if(!pattern.test(email))
  alert("Wrong");
 else
  alert('Right')
}
</script>

<INPUT TYPE="text" NAME="mail" ID="mail">
<INPUT TYPE="button" VALUE="" ONCLICK="validate()">

NAME="mail" ID="mail"><INPUT TYPE="button" VALUE="" ONCLICK="validate()">

javascript验证邮箱格式

 代码如下 复制代码
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

第二种:用Javascript验证email填写是否正确

 代码如下 复制代码

<html>
<head>
<title>test</title>
<script language="javascript">
function emailCheck () {
var emailStr=document.all.form1.tel.value;
alert(emailStr);
var emailPat=/^(.+)@(.+)$/;
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("电子邮件地址必须包括 ( @ 和 . )")
return false;
}
return true;
}
</script>
</head>

<body>
<form name="form1">
<input type="text" name="tel"/>
<input type="button" value="press" onclick="emailCheck()"/>
</form>

</span>
</body>
</html>

第三种:

 代码如下 复制代码

js验证Email
function char_test(chr)
//字符检测函数
{
var i;
var smallch="abcdefghijklmnopqrstuvwxyz";
var bigch="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for(i=0;i<26;i++)
if(chr==smallch.charAt(i) || chr==bigch.charAt(i))
  return(1);
return(0);
}

function spchar_test(chr)
//数字和特殊字符检测函数
{
var i;
var spch="_-.0123456789";
for (i=0;i<13;i++)
  if(chr==spch.charAt(i))
  return(1);
return(0);
}

function email_test(str)
{
var i,flag=0;
var at_symbol=0;
//“@”检测的位置
var dot_symbol=0;
//“.”检测的位置
if(char_test(str.charAt(0))==0 )
return (1);
//首字符必须用字母

for (i=1;i<str.length;i++)
if(str.charAt(i)=='@')
  {
  at_symbol=i;
  break;
  }
//检测“@”的位置

if(at_symbol==str.length-1 || at_symbol==0)
return(2);
//没有邮件服务器域名

if(at_symbol<3)
return(3);
//帐号少于三个字符

if(at_symbol>19 )
return(4);
//帐号多于十九个字符

for(i=1;i<at_symbol;i++)
if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)
  return (5);
for(i=at_symbol+1;i<str.length;i++)
if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)
  return (5);
//不能用其它的特殊字符  
 
for(i=at_symbol+1;i<str.length;i++)
if(str.charAt(i)=='.') dot_symbol=i;
for(i=at_symbol+1;i<str.length;i++)
if(dot_symbol==0 || dot_symbol==str.length-1)
//简单的检测有没有“.”,以确定服务器名是否合法
return (6);
 
return (0);
//邮件名合法
}

对知识补充一下

1.  /^$/ 这个是个通用的格式。
         ^ 匹配输入字符串的开始位置;$匹配输入字符串的结束位置
 2. 里面输入需要实现的功能。
        * 匹配前面的子表达式零次或多次;
       + 匹配前面的子表达式一次或多次;
       ?匹配前面的子表达式零次或一次;
       d  匹配一个数字字符,等价于[0-9]

时间: 2024-09-13 21:18:12

js email 电子邮箱地址验证程序的相关文章

js和php邮箱地址验证的实现

 这篇文章主要介绍了js和php邮箱地址验证的实现方法,有需要的朋友可以参考一下 邮箱地址验证有很多方法.在浏览器端,js邮箱验证可以通过正则表达式检测.   比如:   代码如下: function isEmail(email) {     return /^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFu

javascript邮箱地址验证程序

javascript教程邮箱地址验证程序 validateEmail() 下一步我们希望看到的电子邮件地址,如果用户输入的是真实的.这意味着输入数据 必须至少包含一个@符号和一个点(.).此外,@绝不能以电子邮件地址的第一个字 符,最后点必须至少@符号后的一个字符. 首先我们检查用户输入的所有电子邮件中的任何领域.下一步,我们使用正则表达式 和测试()方法来检查遵守的领域.同时,我们将使用trim()函数,将削减领导过 的字符串空白.这不会是完美的验证 - 有可能跌破它不符合解决 - 但通常不够

js和php邮箱地址验证的实现方法_php技巧

邮箱地址验证有很多方法.在浏览器端,js邮箱验证可以通过正则表达式检测. 比如: 复制代码 代码如下: function isEmail(email) {    return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\u

js电话 邮箱地址验证程序

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/ 1999/xhtml"> <head> <meta http-equiv="cont

asp 邮箱地址验证程序

'******************************************** '函数名:IsValidEmail '作  用:检查Email地址合法性 '参  数:email ----要检查的Email地址 '返回值:True  ----Email地址合法 '       False ----Email地址不合法 '******************************************** function IsValidEmail(email)  dim names

asp email邮箱地址验证正则表达式

上篇文章我们用字符串查找的方法实现了asp email邮箱地址的验证,有可能比较喜欢正则表达式的朋友,这里也给出相应的代码.方法一 复制代码 代码如下: Public Function ChkMail(ByVal Email) Dim Rep,Pmail : ChkMail = True : Set Rep = New RegExp Rep.Pattern = "([.a-zA-Z0-9_-]){2,10}@([a-zA-Z0-9_-]){2,10}(.([a-zA-Z0-9]){2,}){1,

服务器与客户端的邮箱地址验证函数

  邮箱地址验证有很多方法.在浏览器端,js邮箱验证可以通过正则表达式检测.  代码如下   function isEmail(email) {     return /^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*)|((x22)((((x20|x09

jquery formvalidator邮箱地址验证

jquery formvalidator邮箱地址验证 var regstring='^[1-9]d*$';//string表示 var reg=new regexp(regstring);//string to regexp var reg=/^[1-9]d*$/;//直接写法 邮箱地址 w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)* formvalidator 怎么可能会出现如此低级的bug .自己输入一个email 地址 后边没有加 .com 居然提示正确.顿时哥

邮箱地址验证正则表达式

邮箱地址验证正则表达式 ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$]", $email); if (eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$]", $email)) { return FALSE; } //方法二 function is_email($address) {       $rc1 = (ereg("^[-!#$%&'