validate格式校验之身份证号码校验
//校驗身份證號碼
function isIdCardNo(num) {
? ? var factorArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,8, 4, 2, 1];
? ? var parityBit = ["1", "0", "X", "9", "8", "7", "6", "5", "4","3", "2"];
? ? var varArray= [];
? ? var lngProduct = 0;
? ? var intCheckDigit;
? ? var intStrLen = num.length;
? ? var idNumber= num;
? ? //initialize
? ? if(intStrLen !== 18) {
? ? ? ? return false;
? ? }
? ? // check andset 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)) {
? ? ? ? ? ? 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{
? ? ? ? return false;
? ? }
? ? return true;
}
//校驗身份證中日期是否符合格式要求
function isDate8(sDate) {
? ? if(!/^[0-9]{8}$/.test(sDate)) {
? ? ? ? return false;
? ? }
? ? var year,month, day;
? ? year =sDate.substring(0, 4);
? ? month =sDate.substring(4, 6);
? ? day =sDate.substring(6, 8);
? ? var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31];
? ? if (year< 1700 || year>2500) {
? ? ? ? return false;
? ? }
? ? if (((year %4 == 0) && (year % 100 != 0)) ||(year % 400 == 0)) {
? ? ? ? iaMonthDays[1] = 29;
? ? }
? ? if (month< 1 || month >12) {
? ? ? ? return false;
? ? }
? ? return !(day < 1 || day > iaMonthDays[month - 1]);
}
網頁文件中表單驗證代碼:
?? ??? ?$(function() {//如果不需要校驗聯系方式下面可以刪除掉,這里必須跟 下面的?
///#########標記所標記的$("#checkForm").validate({? ?連接
?jQuery.validator.addMethod("isIdCardNo", function (value, element){
? ? ? ? return this.optional(element) || isIdCardNo(value);
? ? },"請正確輸入您的身份證號碼");
? ? ?//校驗聯系方式代碼
? ? ? ?jQuery.validator
?? ??? ??? ??? ??? ?.addMethod(
?? ??? ??? ??? ??? ??? ??? ?"isPhone",
?? ??? ??? ??? ??? ??? ??? ?function(value, element) {
?? ??? ??? ??? ??? ??? ??? ??? ?var length = value.length;
?? ??? ??? ??? ??? ??? ??? ??? ?var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
?? ??? ??? ??? ??? ??? ??? ??? ?return this.optional(element)
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?|| (length == 11 && mobile.test(value));
?? ??? ??? ??? ??? ??? ??? ?}, "請填寫正確的手機號碼");
?? ??? ??? ?$("#checkForm").validate({//#########
?? ??? ??? ??? ?rules : {
?? ??? ??? ??? ??? ?username : {
?? ??? ??? ??? ??? ??? ?required : true,
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?idNumber : {
?? ??? ??? ??? ??? ??? ?required : true,
?? ??? ??? ??? ??? ??? ? isIdCardNo:true,
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?name : {
?? ??? ??? ??? ??? ??? ?required : true,
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?},
?? ??? ??? ??? ?messages : {
?? ??? ??? ??? ??? ?username : {
?? ??? ??? ??? ??? ??? ?required : "不能為空",
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?idNumber : {
?? ??? ??? ??? ??? ??? ?required : "不能為空",
?? ??? ??? ??? ??? ??? ?isIdCardNo:"身份證格式不符合校驗",
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?name : {
?? ??? ??? ??? ??? ??? ?required : "不能為空",
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?});
?? ??? ?});
總結
以上是生活随笔為你收集整理的validate格式校验之身份证号码校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PP点点通介绍与下载
- 下一篇: 金融衍生工具考前最后一练