不用正則和使用正則驗證郵箱的合法性

使用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

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