js表單驗證

js表單驗證

//file: check.js

//校驗是否全由數字組成

function isDigit(s)

{

var patrn=/^[0-9]{1,20}$/;

if (!patrn.exec(s)) return false

return true

}

//校驗登錄名:只能輸入5-20個以字母開頭、可帶數字、“_”、“.”的字串

function isRegisterUserName(s)

{

var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;

if (!patrn.exec(s)) return false

return true

}

//校驗用戶姓名:只能輸入1-30個以字母開頭的字串

function isTrueName(s)

{

var patrn=/^[a-zA-Z]{1,30}$/;

if (!patrn.exec(s)) return false

return true

}

//校驗密碼:只能輸入6-20個字母、數字、下劃線

function isPasswd(s)

{

var patrn=/^(/w){6,20}$/;

if (!patrn.exec(s)) return false

return true

}

//校驗普通電話、傳真號碼:可以“+”開頭,除數字外,可含有“-”

function isTel(s)

{

//var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?(/d){1,12})+$/;

var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;

if (!patrn.exec(s)) return false

return true

}

//校驗手機號碼:必須以數字開頭,除數字外,可含有“-”

function isMobil(s)

{

var patrn=/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;

if (!patrn.exec(s)) return false

return true

}

//校驗郵政編碼

function isPostalCode(s)

{

//var patrn=/^[a-zA-Z0-9]{3,12}$/;

var patrn=/^[a-zA-Z0-9 ]{3,12}$/;

if (!patrn.exec(s)) return false

return true

}

//郵件檢測

function isEmail(theStr) {

var atIndex = theStr.indexOf('@');

var dotIndex = theStr.indexOf('.', atIndex);

var flag = true;

theSub = theStr.substring(0, dotIndex+1)

if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length))

{ return(false); }

else { return(true); }

}

//判斷是否爲空

function isEmpty (str) {

if ((str==null)||(str.length==0)) return true;

else return(false);

}

//判斷日期

function isDate(theStr) {

 var the1st = theStr.indexOf('-');

 var the2nd = theStr.lastIndexOf('-');

 

 if (the1st == the2nd) {

   return false;

 } else {

  var y = theStr.substring(0,the1st);

  var m = theStr.substring(the1st+1,the2nd);

  var d = theStr.substring(the2nd+1,theStr.length);

  var maxDays = 31;

 

  if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {

   return false;

  } else if (y.length < 4) {

    return false ;

  } else if (!isBetween (m, 1, 12)) {

   return false;

  } else if (m==4 || m==6 || m==9 || m==11) {

   maxDays = 30;

  } else if (m==2) {

   if (y % 4 > 0) {

    maxDays = 28;

   }else if (y % 100 == 0 && y % 400 > 0) {

    maxDays = 28;

   }else{

     maxDays = 29;

   }

  }

  if (isBetween(d, 1, maxDays) == false) {

   return false;

  }

  else { return true; }

 }

}

//判斷範圍

function isBetween (val, lo, hi) {

if ((val < lo) || (val > hi)) { return(false); }

else { return(true); }

}

//判斷是否爲Int型

function isInt (theStr) {

var flag = true;

if (isEmpty(theStr)) { flag=false; }

else

{ for (var i=0; i<theStr.length; i++) {

if (isDigit(theStr.substring(i,i+1)) == false) {

flag = false; break;

}

}

}

return(flag);

}

//表單元素通用驗證方法

//NU  檢測是否爲空

//NM  檢測是否爲數字

//EM  檢測是否爲MAIL

//LE=12  檢測長度

//YY  年份

//MM  月份

//DD  日

function validateForm(add){

 var alertMessage = "";

 var elArr = eval(document.forms[0].name).elements;

 var strYY = "";

 var strMM = "";

 var strDD = "";

 for(var i = 0; i < elArr.length; i++){

  if(elArr.id){

    var aryList = (elArr.id).split(',');

    for(var j=0; j<aryList.length; j++){

       if(aryList[j].substring(0,2) == "NU"){

        if(elArr.value==""){

         alertMessage =  alertMessage + elArr.title + "不能爲空!/n";

         break;

        }

       }

       if(aryList[j].substring(0,2) == "NM"){

        if(elArr.value !=""){

        if(isDigit(elArr.value)==false){

         alertMessage = alertMessage + elArr.title + "不爲數字!/n";

         break;

        }

       }

       }

       if(aryList[j].substring(0,2) == "EM"){

        if(elArr.value !=""){

        if(isEmail(elArr.value)==false){

           

         alertMessage = alertMessage + elArr.title + "格式有誤!/n";

         break;

        }

       }

       }

       if(aryList[j].substring(0,2) == "LE"){

        if(elArr.value !=""){

         var eleLength = elArr.value.length;

         var ordLength = aryList[j].substring(3,100);

        if( eleLength > ordLength){

         alertMessage = alertMessage + elArr.title + "長度要求爲"+ ordLength +"位!/n";

         break;

        }

       } 

       } 

       if(aryList[j].substring(0,2) == "YY"){

    strYY = elArr.value;

       } 

       if(aryList[j].substring(0,2) == "MM"){

    strMM = elArr.value;

       }

       if(aryList[j].substring(0,2) == "DD"){

    strDD = elArr.value;

       }

       if(strYY != "" && strMM != "" && strDD != ""){

        if(strYY != "" && strMM != "" && strDD != ""){

        var strDate = strYY + "-" + strMM +"-"+ strDD;

        if(isDate(strDate) == false){

         alertMessage = alertMessage + "日期格式不正確/n";

         strYY = "";

         strMM = "";

         strDD = "";

        }

       }

       }

      

    }

  }

 }

 

 if(add == "true"){

  alertMessage =  addMessage(alertMessage);

 }

 

 if(alertMessage != ""){

  alert(alertMessage);

  return false;

 }else{

  return true;

 }

}

function checkboxChecked(checkboxName)

{    

    var count=0;

    var formname = document.forms[0].name;

    if(eval("document." + formname + "." + checkboxName).length!=null)

    {     

     

        for (var i = 0; i < eval("document." + formname + "." + checkboxName).length; i++)      

        {

     if (eval("document." + formname + "." + checkboxName).checked == true)

     {

      

         count=count+1;

     }

        }

    }

    else

    {   

        if (eval("document." + formname + "." + checkboxName).checked == true)

        {

     count=count+1;

        }

    }  

    return count;

}

//file: index.html 

<html>

<script language="JavaScript" src="check.js"></script>

<script>

function addMessage(message){

 message = message + "另加的錯誤信息/n"

 return message;

}

</script>

<body>

<form name="ordForm" id="ordForm" method="post">

<input type="test" name="name"      id="NU,NM"    title="姓名">

<input type="test" name="password"  id="NU,LE=12"    title="密碼">

<input type="test" name="mail"      id="NU,EM"    title="郵件">

<input type="test" name="yyBIRTHDAY"        id="YY"    title="姓名">

<input type="test" name="mmBIRTHDAY"        id="MM"    title="密碼">

<input type="test" name="ddBIRTHDAY"        id="DD"    title="郵件">

<input type="button" value="submit" onClick="validateForm(ordForm)">

</form>

</body>

</html>

//表單元素通用驗證方法

//NU  檢測是否爲空

//NM  檢測是否爲數字

//EM  檢測是否爲MAIL

//LE=12  檢測長度

//YY  年份

//MM  月份

//DD  日

 

源文檔 <http://cache.baidu.com/c?word=js%3B%B1%ED%B5%A5%3B%D1%E9%D6%A4&url=http%3A//www%2E517ba%2Ecom/bbs/ShowPost%2Easp%3Fmenu%3DPrevious%26ForumID%3D58%26ThreadID%3D2989&b=30&a=19&user=baidu>

 

 
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章