不用正则和使用正则验证邮箱的合法性

使用javascript的两种方式验证邮箱的合法性。

第一种是不适用正则表达式:

  <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
  <html xmlns=”http://www.w3.org/1999/xhtml”>
  <head>
  <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
  <title>不用正则表达式验证邮箱的合法性</title>
  <script type=”text/jscript”>
  function check(){
  //定义flag标记返回值
  var result = false;
  //获取到表单中的值
  var emailVal = email.value;
  if(emailVal.indexOf(‘@’)>0){//如果输入的值中包含了@
  //进行分割
  var before = emailVal.split(‘@’)[0];//得到的是@之前的所有字符值
  var after = emailVal.split(‘@’)[1];//得到的是@之后的所有字符值
  if(isTrue(before) && after.indexOf(‘.’)>0){//如果@后面的包含了.
  //判断.的前面和后面是否都有内容
  alert(“ding”);
  if(isTrue(after.split(‘.’)[0]) && isTrue(after.split(‘.’)[1])){
  alert(“合法邮箱检测通过”);
  return true;
  }
  }
  }
  if(!result){
  alert(“对不起您输入的邮箱不合法”);
  }
  }
   
  //判断这里的字符值是否都是合法的
  function isTrue(str){
  if(str.length == 0){
  return false;
  }
  //进行遍历匹配
  for(var i=0; i<str.length; i++){
  //定义一个临时存放字符遍历
  var temp = str.substring(i,i+1);//对每个字符进行截取匹配
  if(!(temp>=’a'&&temp<=’z') && !(temp>=’A'&&temp<=’Z') && !(temp>=’0′&&temp<=’9′) && temp!=’_')
  return false;
  }
  //否则返回true
  return true;
  }
  </script>
  </head>
   
  <body>
  <input type=”text” id=”email” />
  <input type=”submit” value=”检查邮箱的合法性” οnclick=”check()”/>
  </body>
  </html>

第二中方式是采用正则表达式的方式。

1
2
3
4
function isEmail(str){
       var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
       return reg.test(str);
}


文章来源:http://javaforyejin.sinaapp.com/?p=52

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章