經常用到的JS 表單驗證函數


 

最近需要用到用戶注冊信息的表單驗證,然后就查了好些資料,下面就給大家分享一下經常會用到的一些,JS表單驗證函數,希望對大家有用。

//郵件校驗

 1 //郵件校驗 
 2 //通過校驗返回ture,否則返回false
 3          function isEmail(emailStr) {
 4                 if (emailStr.length == 0) {
 5                     return fasle;      
 6                 } else {
 7                 var emailPat=/^(.+)@(.+)$/;
 8                 var specialChars="/(/)<>@,;:///"/./[/]";
 9                 var validChars="[^/s" + specialChars + "]";
10                 var quotedUser="("[^"]*")";
11                 var ipDomainPat=/^(d{1,3})[.](d{1,3})[.](d{1,3})[.](d{1,3})$/;
12                 var atom=validChars + '+';
13                 var word="(" + atom + "|" + quotedUser + ")";
14                 var userPat=new RegExp("^" + word + "(/." + word + ")*$");
15                 var domainPat=new RegExp("^" + atom + "(/." + atom + ")*$");
16                 var matchArray=emailStr.match(emailPat);
17                 if (matchArray == null) {
18                     return false;    
19                 }
20                 var user=matchArray[1];
21                 var domain=matchArray[2];
22                 if (user.match(userPat) == null) {
23                     return false;
24                 }
25                 var IPArray = domain.match(ipDomainPat);
26                 if (IPArray != null) {
27                     for (var i = 1; i <= 4; i++) {
28                        if (IPArray[i] > 255) {
29                           return false;
30                        }
31                     }
32                     return true;
33                 }
34                 var domainArray=domain.match(domainPat);
35                 if (domainArray == null) {
36                     return false;
37                 }
38                 var atomPat=new RegExp(atom,"g");
39                 var domArr=domain.match(atomPat);
40                 var len=domArr.length;
41                 if ((domArr[domArr.length-1].length < 2) ||
42                     (domArr[domArr.length-1].length > 3)) {
43                     return false;
44                 }
45                 if (len < 2) {
46                     return false;    
47                 }
48                 return true;
49                 }       
50                }
51      
view code

////IP地址校驗
//正確的IP地址回ture,否則返回false

function isIp(strIp) {
            var ipDomainPat=/^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$/;
      var matchArray=strIp.match(ipDomainPat);  
      if(matchArray!=null){
        return true;
      }               
      }

//電話號碼校驗
//正確的電話號碼(包括區號和“-”如0571-1234567[8] 010-1234567[8] )則返回ture,否則返回false

  function isTelphoneNum(telNum){
        var telphoneNumPat=/^0d{2}-d{7,8}|0d{3}-d{7,8}$/;
     var matchArray=telNum.match(telphoneNumPat);
     if(matchArray!=null){
      return true;
      }
      }

//手機號碼校驗
//正確的手機號碼(如:13800571506 013800571505)則返回ture,否則返回false

  function isMobilephoneNum(mobileNum){
      var mobilephoneNumPat=/^1d{10}|01d{10}$/;
      var matchArray=mobileNum.match(mobilephoneNumPat);
      if(matchArray!=null){
       return true;
       }
      }  

 //純數字驗證輸入,輸入為純數字則返回ture,否則返回false

 function isDigital(str){
     var digitalPot=/^d*$/;
     var matchArray=str.match(digitalPot);
     if(matchArray!=null){
      return true;
      }
     }

 //18位身份證驗證,輸入正確的號碼返回ture,否則返回false

  function card(id){
     var Wi=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); 
     var ai="10X98765432";
     var sum=0
     var ssum=0;  
     for(var i=0;i<17;i++){
      ssum=eval(Wi[i]*id.charAt(i));
      sum=ssum+sum; 
     }    
     var modNum=sum%11;
     if(ai.charAt(modNum)==id.charAt(17)){
      return true;       
    }
     } 
View Code

//純英文驗證輸入,判斷是否為英文,正確返回ture,否則返回false

  function isEnglish(name) { 
    if(name.length == 0)
     return false;
    for(i = 0; i < name.length; i++) { 
     if(name.charCodeAt(i) > 128)
      return false;
       }
   return true;
   }
View Code

//純中文驗證輸入,判斷是否為中文,正確返回 ture,否則返回false

 function isChinese(name) 
   { 
    if(name.length == 0)
     return false;
    for(i = 0; i < name.length; i++) { 
     if(name.charCodeAt(i) > 128)
      return true;
   }
    return false;
   }
  
View Code

//非法字符判斷,str中有charset則返回ture

 function contain(str,charset){ 
    var i;
    for(i=0;i<charset.length;i++){
    if(str.indexOf(charset.charAt(i))>=0){
     return true;
    }
    return false;
    }
 }
View Code

//選中文本框或文本域文本,在input位置加上 onClick/onFocus="textSelect();" 然后就可以使用以下代碼    

function textSelect() {
    var obj = document.activeElement;
    if(obj.tagName == "TEXTAREA")
    {
      obj.select();
        }
       if(obj.tagName == "INPUT" )   {
            if(obj.type == "text")
        obj.select();
     }
   }
View Code

//只允許輸入字母,數字,下划線  

function textOnly(){
   var i= window.event.keyCode ;
   //8=backspace
   //9=tab
   //37=left arrow
   //39=right arrow
   //46=delete
   //48~57=0~9
   //97~122=a~z
   //65~90=A~Z
   //95=_
   if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==95)||(i==8)||(i==9)||(i==37)||(i==39)||(i==46))){
    //window.event.keyCode=27;
    event.returnValue=false;
    return false;
   } else {
    //window.event.keyCode=keycode;
    return true;
   }
} 
View Code

//判斷URL,正確的URL返回true,否則返回false    

function isURL(URL){
    var urlPat=/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/;
    var matchArray=URL.match(urlPat);
    if(matchArray!=null){
     return true;
    } else {
     return false;
    }    
   }
View Code

//判斷短日期(如2003-5-23)  

function isDate(date){
    var r = date.match(/^(d{1,4})(-|/)(d{1,2})(d{1,2})$/); 
    if(r==null){   
     return false; 
    }
    if (r[1]<1 || r[3]<1 || r[3]-1>12 || r[4]<1 || r[4]>31) {   
     return false
    }
    var d= new Date(r[1], r[3]-1, r[4]); 
    if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]){
     return true;
    }
   }
View Code

//判斷短時間(HH:MM:SS)  

function isTime(time){
    var a = time.match(/^(d{1,2})(:)?(d{1,2})(d{1,2})$/);
    if (a == null) 
    {
     return false;
    }
    if (a[1]>23 || a[1]<0 || a[3]>60 || a[3]<0 || a[4]>60 || a[4]<0){
     return false
    }
    return true;
   }
View Code

//在表單元素中除button外,按回車鍵模擬TAB功能  

  function enterToTab(){
    if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){
          if (window.event.srcElement.type != "button")
              window.event.keyCode = 9;
       } else {
              return true;
             }
         }
View Code

//在填寫表單時按回車鍵提交表單,name為sumbit控件名  

function enterTOSubmit(name) {
    if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){
          var objSubmit=document.getElementById(name); 
    objSubmit.focus;  
          } else {
              return true;
             }
         } 
View Code

//判斷是否為浮點數,正確返回true      

function isFloat(float,index){
      var floatPat=/^(d{1,})[.](d{1,})$/;
      var matchArray=float.match(floatPat);
      if(matchArray!=null) {
       if(matchArray[2].length==index){   
      return true;
       }
    }     
   }
View Code

//判斷字符最大長度,如果strin的長度不大於maxLen返回ture    

function maxLength(strin,maxLen) {   
    var len=0;
          for(var i=0;i<strin.length;i++)
    {
     if(strin.charCodeAt(i)>256)
     {
      len += 2;
     } else {
      len++;
     }
    }
    if(len<=maxLen){
     return true;
     } 
  }
View Code

//判斷字符最小長度,如果的長度不小於minLen返回ture  

function minLength(strin,minLen) {   
    var len=0;
          for(var i=0;i<strin.length;i++)
    {
     if(strin.charCodeAt(i)>256)
     {
      len += 2;
     } else {
      len++;
     }
    }
    if(len>=maxLen){
     return true;
     } 
      }
  
View Code

 //由三個函數組成checkPassWord(),charMode(),bitTotal()
//校驗密碼復雜度,密碼由數字,大小寫字母,特殊字符中的任意三種組合,通過則返回true   

 function checkPassWord(passWord,maxLen){  
    if (passWord.length<=maxLen)  
     return false; //密碼太短  
    Modes=0;  
    for (i=0;i<passWord.length;i++){  
    //測試一個字符並判斷一共有多少種模式.  
     Modes|=charMode(passWord.charCodeAt(i));  
    } 
    return bitTotal(Modes);  
   }
//CharMode函數  
//判斷某個字符是屬於哪一種類型.  
   function charMode(iN){  
    if (iN>=48 && iN <=57) //數字  
     return 1;  
    if (iN>=65 && iN <=90) //大寫字母  
     return 2;  
    if (iN>=97 && iN <=122) //小寫  
     return 4;  
    else  
     return 8; //特殊字符  
   }  
//bitTotal函數  
//計算出當前密碼當中一共有多少種模式  
   function bitTotal(num){  
    modes=0;  
   for (i=0;i<4;i++){  
    if (num & 1) modes++;    
    num>>>=1;    
   }    
   if(modes==3){
    return true
    } 
   }  
  
View Code

 //判斷是否為合法的用戶名,合法返回true,否則返回flase
    //用戶名由字母和數字、下划線組成,且只能以字母開頭,且長度最小為6位

 function isAccount(str){
     if(/^[a-z]w{3,}$/i.test(str))     
     {
     return true;
    } else {
     return false;  
      ]
   }
View Code

//取得字符串中中文字的個數  

function getChineseNum(obstring){
    var pattern = /^[一-龥]+$/i;
    var maxL,minL;
    maxL = obstring.length;
    obstring = obstring.replace(pattern,"");
    minL = obstring.length;
    return (maxL - minL)
   }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM