1function checkidcard(card) 2{ 3 card=card.toLowerCase(); 4 var vcity={ 11:"å京",12:"天津",13:"æ²³å",14:"山西",15:"å èå¤",21:"è¾½å®",22:"åæ",23:"é»é¾æ±",31:"䏿µ·",32:"æ±è",33:"æµæ±",34:"å®å¾½",35:"ç¦å»º",36:"æ±è¥¿",37:"å±±ä¸",41:"æ²³å",42:"æ¹å",43:"æ¹å",44:"广ä¸",45:"广西",46:"æµ·å",50:"éåº",51:"åå·",52:"è´µå·",53:"äºå",54:"西è",61:"é西",62:"çè",63:"éæµ·",64:"å®å¤",65:"æ°ç",71:"å°æ¹¾",81:"馿¸¯",82:"æ¾³é¨",91:"å½å¤"}; 5 var arrint = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 6 var arrch = new Array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'); 7 var reg = /(^\d{15}$)|(^\d{17}(\d|x)$)/; 8 if(!reg.test(card))return false; 9 if(vcity[card.substr(0,2)] == undefined)return false; 10 var len=card.length; 11 if(len==15) 12 reg=/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/; 13 else 14 reg=/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|x)$/; 15 var d,a = card.match(new RegExp(reg)); 16 if(!a)return false; 17 if (len==15){ 18 d = new Date("19"+a[2]+"/"+a[3]+"/"+a[4]); 19 }else{ 20 d = new Date(a[2]+"/"+a[3]+"/"+a[4]); 21 } 22 if (!(d.getFullYear()==a[2]&&(d.getMonth()+1)==a[3]&&d.getDate()==a[4]))return false; 23 if(len==18) 24 { 25 len=0; 26 for (var i = 0; i < 17; i++) { 27 len += parseInt(card.substr(i, 1)) * arrint[i]; 28 } 29 return arrch[len % 11] == card.substr(17, 1); 30 } 31 return true; 32}; 33 jQuery.extend(jQuery.validator.messages, { 34 required: "å¿ å¡«åæ®µ", 35 remote: "请修æ£è¯¥å段", 36 email: "请è¾å ¥æ£ç¡®æ ¼å¼ççµåé®ä»¶", 37 url: "请è¾å ¥åæ³çç½å", 38 date: "请è¾å ¥åæ³çæ¥æ", 39 dateISO: "请è¾å ¥åæ³çæ¥æ (ISO).", 40 number: "请è¾å ¥åæ³çæ°å", 41 digits: "åªè½è¾å ¥æ´æ°", 42 creditcard: "请è¾å ¥åæ³çä¿¡ç¨å¡å·", 43 equalTo: "è¯·åæ¬¡è¾å ¥ç¸åçå¼", 44 accept: "请è¾å ¥æ¥æåæ³åç¼åçå符串", 45 maxlength: jQuery.validator.format("æå¤ {0} 个å"), 46 minlength: jQuery.validator.format("æå° {0} 个å"), 47 rangelength: jQuery.validator.format("å 容é¿åº¦è¯·ä¿æå¨ {0} å° {1} 个åä¹é´"), 48 range: jQuery.validator.format("请è¾å ¥ä¸ä¸ªä»äº {0} å {1} ä¹é´çå¼"), 49 max: jQuery.validator.format("æå¤§ä¸º {0} "), 50 min: jQuery.validator.format("æå°ä¸º {0} ") 51 }); 52 jQuery.validator.addMethod("Isw", function (value, element) { return this.optional(element) || /^\w+$/.test(value); }, 'åªè½å å«è±æåæ¯ãæ°ååä¸å线ï¼'); 53 jQuery.validator.addMethod("CheckUserName", function (value, element) { 54 return this.optional(element) || (/^[\u4e00-\u9fa5\w]+$/.test(value) && /[\u4e00-\u9fa5a-zA-Z_]+/.test(value)); 55 }, '请è¾å ¥ææç¨æ·åï¼'); 56 jQuery.validator.addMethod("IsRealName", function (value, element) { return this.optional(element) || (/^(([\u4e00-\u9fa5]+)|([a-zA-Z· ]+))$/.test(value)); }, '请填åçå®å§åï¼'); 57 jQuery.validator.addMethod("CheckQQ", function (value, element) { return this.optional(element) || /^[1-9][0-9]{4,}$/i.test(value); }, "请æ£ç¡®å¡«åæ¨çQQå·ç ï¼"); 58 jQuery.validator.addMethod("byteRangeLength", function (value, element, param) { 59 value = $.trim(value); var length = value.length; 60 for (var i = 0; i < value.length; i++) { if (value.charCodeAt(i) > 127) { length++; } } 61 return this.optional(element) || (length >= param[0] && length <= param[1]); 62 }, $.validator.format("请确ä¿è¾å ¥çå¼å¨{0}-{1}个åèä¹é´(ä¸ä¸ªä¸æåç®2个åè)ï¼")); 63 // ææºå·ç éªè¯ 64 jQuery.validator.addMethod("isMobile", function (value, element) { return this.optional(element) || /^1((([3578])\d{9})|(4[57]\d{8}))$/.test(value); }, "请æ£ç¡®å¡«åæ¨çææºå·ç ï¼"); 65 // 身份è¯å·ç éªè¯ 66 jQuery.validator.addMethod("isIDCard", function (value, element) { return this.optional(element) || checkidcard(value); }, "请æ£ç¡®å¡«å身份è¯å·ï¼"); 67 // çµè¯å·ç éªè¯010-12345678 68 jQuery.validator.addMethod("isTel", function (value, element) { var tel = /^\d{3,4}-?\d{7,9}$/; return this.optional(element) || (tel.test(value)); }, "请æ£ç¡®å¡«åæ¨ççµè¯å·ç ï¼"); 69 // èç³»çµè¯(ææº/çµè¯çå¯)éªè¯ 70 jQuery.validator.addMethod("isPhone", function (value, element) { var mobile = /^1(([34578])\d{9})$/; var tel = /^\d{3,4}-?\d{7,9}$/; return this.optional(element) || (tel.test(value) || mobile.test(value)); }, "请æ£ç¡®å¡«åæ¨çèç³»çµè¯(ææº/çµè¯çå¯)ï¼"); 71 // 鮿¿ç¼ç éªè¯ 72 jQuery.validator.addMethod("isZipCode", function (value, element) { return this.optional(element) || (/^[0-9]{6}$/.test(value)); }, "请æ£ç¡®å¡«åæ¨ç鮿¿ç¼ç ï¼"); 73 $.validator.setDefaults( 74 { 75 errorPlacement: function (error, element) { 76 var ID = element.attr('box') || element.attr('id'); 77 if (!ID || error.html() == '') return; 78 error.removeClass().addClass("error").attr("for", ID); 79 if ($("#box_" + ID).length == 0) element.parent().append("<span id=\"box_" + ID + "\"></span>"); 80 if ($("#box_" + ID + ">label").size() == 0) { 81 $("#box_" + ID).html(error); 82 } else { 83 var L = $("#box_" + ID + ">label"); 84 if ($.trim(L.html()) == '' || L.attr("for") == element.attr('id')) L.attr("for", element.attr('id')).html(error.html()); 85 L.removeClass().addClass("error") 86 } 87 }, 88 success: function (label) { 89 var ID = label.attr("for"); 90 if ($.trim($("#box_" + ID).text()) == '') { 91 $("#box_" + ID + ">label").removeClass('error').addClass("success").html(' '); 92 } 93 }, 94 ignore:'', 95 focusInvalid: true, // è·å¾ç¦ç¹æ¶ä¸éªè¯ 96 onkeyup: false //,debug: true 97 });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.