软件是对质量的不懈追求

jquery validate自定义验证方法


 /* 追加自定义验证方法 */   
 
// 身份证号码验证   
 jQuery.validator.addMethod("idcardno"function(value, element) {
   
return this.optional(element) || isIdCardNo(value);   
 }, 
"请正确输入身份证号码");
 
  
//字母数字
 jQuery.validator.addMethod("alnum"function(value, element) {
   
return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);
 }, 
"只能包括英文字母和数字");
 
  
// 手机号码验证   
 jQuery.validator.addMethod("cellphone"function(value, element) {
   
var length = value.length;
   
return this.optional(element) || (length == 11 && /^(1\d{10})$/.test(value));
 }, 
"请正确填写手机号码"); 
 
  
// 电话号码验证   
 jQuery.validator.addMethod("telephone"function(value, element) {
   
var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
   
return this.optional(element) || (tel.test(value));
 }, 
"请正确填写电话号码");
 
 
// 邮政编码验证
 jQuery.validator.addMethod("zipcode"function(value, element) {
   
var tel = /^[0-9]{6}$/;
   
return this.optional(element) || (tel.test(value));
 }, 
"请正确填写邮政编码");
 
  
// 汉字
 jQuery.validator.addMethod("chcharacter"function(value, element) {
   
var tel = /^[\u4e00-\u9fa5]+$/;
   
return this.optional(element) || (tel.test(value));
 }, 
"请输入汉字");
 
 
/**
 * 身份证号码验证
 *
 
*/
function isIdCardNo(num) {

 
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
 
var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
 
var varArray = new Array();
 
var intValue;
 
var lngProduct = 0;
 
var intCheckDigit;
 
var intStrLen = num.length;
 
var idNumber = num;
   
// initialize
     if ((intStrLen != 15&& (intStrLen != 18)) {
         
return false;
     }
     
// check and set value
     for(i=0;i<intStrLen;i++) {
         varArray[i] 
= idNumber.charAt(i);
         
if ((varArray[i] < '0|| varArray[i] > '9') && (i != 17)) {
             
return false;
         } 
else if (i < 17) {
             varArray[i] 
= varArray[i] * factorArr[i];
         }
     }
     
     
if (intStrLen == 18) {
         
//check date
         var date8 = idNumber.substring(6,14);
         
if (isDate8(date8) == false) {
            
return false;
         }
         
// calculate the sum of the products
         for(i=0;i<17;i++) {
             lngProduct 
= lngProduct + varArray[i];
         }
         
// calculate the check digit
         intCheckDigit = parityBit[lngProduct % 11];
         
// check last digit
         if (varArray[17!= intCheckDigit) {
             
return false;
         }
     }
     
else{        //length is 15
         //check date
         var date6 = idNumber.substring(6,12);
         
if (isDate6(date6) == false) {

             
return false;
         }
     }
     
return true;
     
 }
/**
 * 判断是否为“YYYYMM”式的时期
 *
 
*/
function isDate6(sDate) {
   
if(!/^[0-9]{6}$/.test(sDate)) {
      
return false;
   }
   
var year, month, day;
   year 
= sDate.substring(04);
   month 
= sDate.substring(46);
   
if (year < 1700 || year > 2500return false
   
if (month < 1 || month > 12return false
   
return true
}
/**
 * 判断是否为“YYYYMMDD”式的时期
 *
 
*/
function isDate8(sDate) {
   
if(!/^[0-9]{8}$/.test(sDate)) {
      
return false;
   }
   
var year, month, day;
   year 
= sDate.substring(04);
   month 
= sDate.substring(46);
   day 
= sDate.substring(68);
   
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
   
if (year < 1700 || year > 2500return false
   
if (((year % 4 == 0&& (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
   
if (month < 1 || month > 12return false
   
if (day < 1 || day > iaMonthDays[month - 1]) return false
   
return true
}




posted on 2010-03-30 11:30 BlakeSu 阅读(3000) 评论(2)  编辑  收藏

评论

# re: jquery validate自定义验证方法[未登录] 2014-10-09 10:21 123

12  回复  更多评论   

# re: jquery validate自定义验证一天一天、、hgfhf6464\5454 2014-12-22 14:31 321321

432432  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: