js常用方法封装
1 /*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ 2 (function(){function N(p,r){function q(a){if(q[a]!==w)return q[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=q("json-stringify")&&q("json-parse");else{var e;if("json-stringify"==a){c=r.stringify;var b="function"==typeof c&&s;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new t)&&'""'==c(new A)&&c(u)===w&&c(w)===w&&c()===w&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([w])&&"null"==c(null)&&"[null,null,null]"==c([w,u,null])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'== 3 c({a:[e,!0,!1,null,"\x00\b\n\f\r\t"]})&&"1"===c(null,e)&&"[\n 1,\n 2\n]"==c([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new C(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new C(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new C(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new C(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=r.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var n=5==e.a.length&&1===e.a[0];if(n){try{n=!c('"\t"')}catch(d){}if(n)try{n= 4 1!==c("01")}catch(g){}if(n)try{n=1!==c("1.")}catch(m){}}}}catch(X){n=!1}c=n}}return q[a]=!!c}p||(p=k.Object());r||(r=k.Object());var t=p.Number||k.Number,A=p.String||k.String,H=p.Object||k.Object,C=p.Date||k.Date,G=p.SyntaxError||k.SyntaxError,K=p.TypeError||k.TypeError,L=p.Math||k.Math,I=p.JSON||k.JSON;"object"==typeof I&&I&&(r.stringify=I.stringify,r.parse=I.parse);var H=H.prototype,u=H.toString,v,B,w,s=new C(-0xc782b5b800cec);try{s=-109252==s.getUTCFullYear()&&0===s.getUTCMonth()&&1===s.getUTCDate()&& 5 10==s.getUTCHours()&&37==s.getUTCMinutes()&&6==s.getUTCSeconds()&&708==s.getUTCMilliseconds()}catch(Q){}if(!q("json")){var D=q("bug-string-char-index");if(!s)var x=L.floor,M=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,c){return M[c]+365*(a-1970)+x((a-1969+(c=+(1<c)))/4)-x((a-1901+c)/100)+x((a-1601+c)/400)};(v=H.hasOwnProperty)||(v=function(a){var c={},e;(c.__proto__=null,c.__proto__={toString:1},c).toString!=u?v=function(a){var c=this.__proto__;a=a in(this.__proto__=null,this);this.__proto__= 6 c;return a}:(e=c.constructor,v=function(a){var c=(this.constructor||e).prototype;return a in this&&!(a in c&&this[a]===c[a])});c=null;return v.call(this,a)});B=function(a,c){var e=0,b,f,n;(b=function(){this.valueOf=0}).prototype.valueOf=0;f=new b;for(n in f)v.call(f,n)&&e++;b=f=null;e?B=2==e?function(a,c){var e={},b="[object Function]"==u.call(a),f;for(f in a)b&&"prototype"==f||v.call(e,f)||!(e[f]=1)||!v.call(a,f)||c(f)}:function(a,c){var e="[object Function]"==u.call(a),b,f;for(b in a)e&&"prototype"== 7 b||!v.call(a,b)||(f="constructor"===b)||c(b);(f||v.call(a,b="constructor"))&&c(b)}:(f="valueOf toString toLocaleString propertyIsEnumerable isPrototypeOf hasOwnProperty constructor".split(" "),B=function(a,c){var e="[object Function]"==u.call(a),b,h=!e&&"function"!=typeof a.constructor&&F[typeof a.hasOwnProperty]&&a.hasOwnProperty||v;for(b in a)e&&"prototype"==b||!h.call(a,b)||c(b);for(e=f.length;b=f[--e];h.call(a,b)&&c(b));});return B(a,c)};if(!q("json-stringify")){var U={92:"\\\\",34:'\\"',8:"\\b", 8 12:"\\f",10:"\\n",13:"\\r",9:"\\t"},y=function(a,c){return("000000"+(c||0)).slice(-a)},R=function(a){for(var c='"',b=0,h=a.length,f=!D||10<h,n=f&&(D?a.split(""):a);b<h;b++){var d=a.charCodeAt(b);switch(d){case 8:case 9:case 10:case 12:case 13:case 34:case 92:c+=U[d];break;default:if(32>d){c+="\\u00"+y(2,d.toString(16));break}c+=f?n[b]:a.charAt(b)}}return c+'"'},O=function(a,c,b,h,f,n,d){var g,m,k,l,p,r,s,t,q;try{g=c[a]}catch(z){}if("object"==typeof g&&g)if(m=u.call(g),"[object Date]"!=m||v.call(g, 9 "toJSON"))"function"==typeof g.toJSON&&("[object Number]"!=m&&"[object String]"!=m&&"[object Array]"!=m||v.call(g,"toJSON"))&&(g=g.toJSON(a));else if(g>-1/0&&g<1/0){if(E){l=x(g/864E5);for(m=x(l/365.2425)+1970-1;E(m+1,0)<=l;m++);for(k=x((l-E(m,0))/30.42);E(m,k+1)<=l;k++);l=1+l-E(m,k);p=(g%864E5+864E5)%864E5;r=x(p/36E5)%24;s=x(p/6E4)%60;t=x(p/1E3)%60;p%=1E3}else m=g.getUTCFullYear(),k=g.getUTCMonth(),l=g.getUTCDate(),r=g.getUTCHours(),s=g.getUTCMinutes(),t=g.getUTCSeconds(),p=g.getUTCMilliseconds(); 10 g=(0>=m||1E4<=m?(0>m?"-":"+")+y(6,0>m?-m:m):y(4,m))+"-"+y(2,k+1)+"-"+y(2,l)+"T"+y(2,r)+":"+y(2,s)+":"+y(2,t)+"."+y(3,p)+"Z"}else g=null;b&&(g=b.call(c,a,g));if(null===g)return"null";m=u.call(g);if("[object Boolean]"==m)return""+g;if("[object Number]"==m)return g>-1/0&&g<1/0?""+g:"null";if("[object String]"==m)return R(""+g);if("object"==typeof g){for(a=d.length;a--;)if(d[a]===g)throw K();d.push(g);q=[];c=n;n+=f;if("[object Array]"==m){k=0;for(a=g.length;k<a;k++)m=O(k,g,b,h,f,n,d),q.push(m===w?"null": 11 m);a=q.length?f?"[\n"+n+q.join(",\n"+n)+"\n"+c+"]":"["+q.join(",")+"]":"[]"}else B(h||g,function(a){var c=O(a,g,b,h,f,n,d);c!==w&&q.push(R(a)+":"+(f?" ":"")+c)}),a=q.length?f?"{\n"+n+q.join(",\n"+n)+"\n"+c+"}":"{"+q.join(",")+"}":"{}";d.pop();return a}};r.stringify=function(a,c,b){var h,f,n,d;if(F[typeof c]&&c)if("[object Function]"==(d=u.call(c)))f=c;else if("[object Array]"==d){n={};for(var g=0,k=c.length,l;g<k;l=c[g++],(d=u.call(l),"[object String]"==d||"[object Number]"==d)&&(n[l]=1));}if(b)if("[object Number]"== 12 (d=u.call(b))){if(0<(b-=b%1))for(h="",10<b&&(b=10);h.length<b;h+=" ");}else"[object String]"==d&&(h=10>=b.length?b:b.slice(0,10));return O("",(l={},l[""]=a,l),f,n,h,"",[])}}if(!q("json-parse")){var V=A.fromCharCode,W={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},b,J,l=function(){b=J=null;throw G();},z=function(){for(var a=J,c=a.length,e,h,f,k,d;b<c;)switch(d=a.charCodeAt(b),d){case 9:case 10:case 13:case 32:b++;break;case 123:case 125:case 91:case 93:case 58:case 44:return e= 13 D?a.charAt(b):a[b],b++,e;case 34:e="@";for(b++;b<c;)if(d=a.charCodeAt(b),32>d)l();else if(92==d)switch(d=a.charCodeAt(++b),d){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=W[d];b++;break;case 117:h=++b;for(f=b+4;b<f;b++)d=a.charCodeAt(b),48<=d&&57>=d||97<=d&&102>=d||65<=d&&70>=d||l();e+=V("0x"+a.slice(h,b));break;default:l()}else{if(34==d)break;d=a.charCodeAt(b);for(h=b;32<=d&&92!=d&&34!=d;)d=a.charCodeAt(++b);e+=a.slice(h,b)}if(34==a.charCodeAt(b))return b++,e;l();default:h= 14 b;45==d&&(k=!0,d=a.charCodeAt(++b));if(48<=d&&57>=d){for(48==d&&(d=a.charCodeAt(b+1),48<=d&&57>=d)&&l();b<c&&(d=a.charCodeAt(b),48<=d&&57>=d);b++);if(46==a.charCodeAt(b)){for(f=++b;f<c&&(d=a.charCodeAt(f),48<=d&&57>=d);f++);f==b&&l();b=f}d=a.charCodeAt(b);if(101==d||69==d){d=a.charCodeAt(++b);43!=d&&45!=d||b++;for(f=b;f<c&&(d=a.charCodeAt(f),48<=d&&57>=d);f++);f==b&&l();b=f}return+a.slice(h,b)}k&&l();if("true"==a.slice(b,b+4))return b+=4,!0;if("false"==a.slice(b,b+5))return b+=5,!1;if("null"==a.slice(b, 15 b+4))return b+=4,null;l()}return"$"},P=function(a){var c,b;"$"==a&&l();if("string"==typeof a){if("@"==(D?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(c=[];;b||(b=!0)){a=z();if("]"==a)break;b&&(","==a?(a=z(),"]"==a&&l()):l());","==a&&l();c.push(P(a))}return c}if("{"==a){for(c={};;b||(b=!0)){a=z();if("}"==a)break;b&&(","==a?(a=z(),"}"==a&&l()):l());","!=a&&"string"==typeof a&&"@"==(D?a.charAt(0):a[0])&&":"==z()||l();c[a.slice(1)]=P(z())}return c}l()}return a},T=function(a,b,e){e=S(a,b,e);e=== 16 w?delete a[b]:a[b]=e},S=function(a,b,e){var h=a[b],f;if("object"==typeof h&&h)if("[object Array]"==u.call(h))for(f=h.length;f--;)T(h,f,e);else B(h,function(a){T(h,a,e)});return e.call(a,b,h)};r.parse=function(a,c){var e,h;b=0;J=""+a;e=P(z());"$"!=z()&&l();b=J=null;return c&&"[object Function]"==u.call(c)?S((h={},h[""]=e,h),"",c):e}}}r.runInContext=N;return r}var K=typeof define==="function"&&define.amd,F={"function":!0,object:!0},G=F[typeof exports]&&exports&&!exports.nodeType&&exports,k=F[typeof window]&& 17 window||this,t=G&&F[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;!t||t.global!==t&&t.window!==t&&t.self!==t||(k=t);if(G&&!K)N(k,G);else{var L=k.JSON,Q=k.JSON3,M=!1,A=N(k,k.JSON3={noConflict:function(){M||(M=!0,k.JSON=L,k.JSON3=Q,L=Q=null);return A}});k.JSON={parse:A.parse,stringify:A.stringify}}K&&define(function(){return A})}).call(this); 18 jQuery.toJSON = JSON.stringify;JSON.encode = JSON.stringify;JSON.decode = JSON.parse; 19 20 function getResultAjax(data) { 21 var result = null; 22 var resultObj = null; 23 if(typeof(data) == 'string') resultObj = eval("(" + data + ")"); 24 else resultObj = eval("(" + $.toJSON(data) + ")"); 25 if (resultObj != null && resultObj.retCode == 1) result = resultObj.retObj; 26 return result; 27 } 28 29 30 31 function getResult(data) { 32 var result = null; 33 var resultObj = null; 34 if(typeof(data) == 'string') resultObj = eval("(" + data + ")"); 35 else resultObj = eval("(" + $.toJSON(data) + ")"); 36 if (resultObj != null && resultObj.resCode == 1) result = resultObj.result; 37 return result; 38 } 39 40 41 function Map() { 42 this.elements = new Array(); 43 //获取MAP元素个数 44 this.size = function () { 45 return this.elements.length; 46 }; 47 48 //判断MAP是否为空 49 this.isEmpty = function () { 50 return (this.elements.length < 1); 51 }; 52 53 //删除MAP所有元素 54 this.clear = function () { 55 this.elements = new Array(); 56 }; 57 58 //向MAP中增加元素(key, value) 59 this.put = function (_key, _value) { 60 if (this.containsKey(_key)) { 61 this.remove(_key); 62 } 63 this.elements.push({key:_key, value:_value}); 64 }; 65 //删除指定KEY的元素,成功返回True,失败返回False 66 this.remove = function (_key) { 67 var bln = false; 68 try { 69 for (i = 0; i < this.elements.length; i++) { 70 if (this.elements[i].key == _key) { 71 this.elements.splice(i, 1); 72 return true; 73 } 74 } 75 } 76 catch (e) { 77 bln = false; 78 } 79 return bln; 80 }; 81 82 //获取指定KEY的元素值VALUE,失败返回NULL 83 this.get = function (_key) { 84 try { 85 for (i = 0; i < this.elements.length; i++) { 86 if (this.elements[i].key == _key) { 87 return this.elements[i].value; 88 } 89 } 90 } 91 catch (e) { 92 return null; 93 } 94 }; 95 96 //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 97 this.element = function (_index) { 98 if (_index < 0 || _index >= this.elements.length) { 99 return null; 100 } 101 return this.elements[_index]; 102 }; 103 104 //判断MAP中是否含有指定KEY的元素 105 this.containsKey = function (_key) { 106 var bln = false; 107 try { 108 for (i = 0; i < this.elements.length; i++) { 109 if (this.elements[i].key == _key) { 110 bln = true; 111 } 112 } 113 } 114 catch (e) { 115 bln = false; 116 } 117 return bln; 118 }; 119 120 //判断MAP中是否含有指定VALUE的元素 121 this.containsValue = function (_value) { 122 var bln = false; 123 try { 124 for (i = 0; i < this.elements.length; i++) { 125 if (this.elements[i].value == _value) { 126 bln = true; 127 } 128 } 129 } 130 catch (e) { 131 bln = false; 132 } 133 return bln; 134 }; 135 136 //获取MAP中所有VALUE的数组(ARRAY) 137 this.values = function () { 138 var arr = new Array(); 139 for (i = 0; i < this.elements.length; i++) { 140 arr.push(this.elements[i].value); 141 } 142 return arr; 143 }; 144 145 //获取MAP中所有KEY的数组(ARRAY) 146 this.keys = function () { 147 var arr = new Array(); 148 for (i = 0; i < this.elements.length; i++) { 149 arr.push(this.elements[i].key); 150 } 151 return arr; 152 }; 153 } 154 155 /** 156 * 判断字符串是否为空 157 * @param o 158 * @returns {Boolean} 159 */ 160 function isNull(o) { 161 return o == null || o == "" || o == "undefined"; 162 } 163 164 /** 165 * 校验用户输入是否为数字 166 * @param {Object} e 167 */ 168 function isNumber(e) { 169 if (navigator.appName.indexOf("Microsoft") != -1) { 170 e = e == null ? window.event : e; 171 if (((e.keyCode > 47) && (e.keyCode < 58)) || (e.keyCode == 8)) { 172 return true; 173 } else { 174 e.cancelBubble = true; 175 e.returnvalue = false; 176 return false; 177 } 178 } else { 179 if (navigator.appName.indexOf("Netscape") != -1) { 180 if (((e.which > 47) && (e.which < 58)) || (e.which == 8) || (e.which == 0)) return true; 181 else return false; 182 } else return true; 183 } 184 } 185 186 /** 187 **获取URL的参数值 188 **@param strName 参数名称 189 **/ 190 function getRequestURLParam(strName) { 191 var strVal = ""; 192 var strHref = document.location.href; 193 var intPos = strHref.indexOf("?"); 194 var strRight = strHref.substr(intPos + 1); 195 var arrTmp = strRight.split("&"); 196 for (var i = 0; i < arrTmp.length; i++) { 197 var arrTemp = arrTmp[i].split("="); 198 if (arrTemp[0].toUpperCase() == strName.toUpperCase()) { 199 strVal = arrTemp[1]; 200 } 201 } 202 return strVal; 203 } 204 205 /** 206 * 校验是否为移动号码 207 * @param {Object} value 208 */ 209 function chkCelNumber(value) { 210 //判断是否需要校验是否中国移动手机号码 211 var checkChinaMobile = value || false; 212 var mobile = checkChinaMobile ? /^1[3456789]\d{9}$/ : /^13[4-9]\d{8}$/; 213 return mobile.test(value); 214 } 215 216 /** 217 * 验证邮箱 218 * @param email 219 * @returns 220 */ 221 function checkEmail(email) { 222 var reg = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9._-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; 223 var flag = reg.test(email); 224 return flag; 225 } 226 227 //非法字符校验 228 function checkChar(str) { 229 var wordsArray = new Array("%","%","*", "●", "▲", "■", "@", "@", "◎", 230 "★", "※", "#", "〓", "\", "§", "☆", "○", "◇", "◆", "□", "△", "&", 231 "^", " ̄", "_","♂","♀","Ю","┭","①","「","」","≮","§","£","∑","『","』", 232 "⊙","∷","Θ","の","↓","↑","Ф","~","Ⅱ","∈","┣"," ┫","╋","﹉", "#", 233 "@", "&", "*", "※", "§", "〃", "№", "〓", "○","●", "△", "▲", "◎", "☆", "★", 234 "◇", "◆", "■", "□", "▼", "▽","㊣", "℅", "ˉ", " ̄", "_", "﹍", "﹊", "﹎", "﹋", 235 "﹌", "﹟", "﹠","﹡", "♀", "♂", "?", "⊙", "↑", "↓", "←", "→", "↖", "↗", "↙","↘", 236 "┄", "︴", "﹏", "(", ")", "︵", "︶", "{", "}", "︷","︸", "〔", "〕", "︹", "︺", 237 "【", "】", "︻", "︼", "《", "》", "︽","︾", "〈", "〉", "︿", "﹀", "「", "」", 238 "﹁", "﹂", "『", "』", "﹃","﹄", "﹙", "﹚", "﹛", "﹜", "﹝", "﹞", 239 "\"", "〝", "〞", "ˋ","ˊ", "≈", "≡", "≠", "=", "≤", "≥", "<", ">", "≮", "≯", "∷", 240 "±", "+", "×", "÷", "/", "∫", "∮", "∝", "∧", "∨", "∞","∑", "∏", "∪", "∩", "∈", 241 "∵", "∴", "⊥", "∥", "∠", "⌒", "⊙","≌", "∽", "√", "≦", "≧", "≒", "≡", "﹢", "﹣", 242 "﹤", "﹥", "﹦","~", "∟", "⊿", "∥", "㏒", "㏑", "∣", "|", "︱", "︳", "|", "/","\", "∕", 243 "﹨", "¥", "€", "¥", "£", "®", "™", "©", "々","~", "‖", "ˇ", "ˉ", "&", "*", "#", "`", "~", 244 "=", "(", ")", "^","$", "@", "\\", "/", ">", "<", "[", "]", "{", "}"); 245 var len = wordsArray.length; 246 for (var i = 0; i < len; i++) { 247 if (str.indexOf(wordsArray[i]) != -1) { 248 return wordsArray[i]; 249 } 250 } 251 return ""; 252 } 253 254 /** 255 * 检测密码简易程度,并且为6位数字 256 * 重复的(如:111111,666666等)、连续的(如:123456、234567等 257 */ 258 function checkPass(number) { 259 if (!/^\d{6}$/.test(number)) return false; // 不是6位数字 260 if (/^(\d)\1+$/.test(number)) return false; // 全一样 261 262 var numberStr = number.replace(/\d/g, function($0, pos) { 263 return parseInt($0)-pos; 264 }); 265 if (/^(\d)\1+$/.test(numberStr)) return false; // 顺增 266 267 numberStr = number.replace(/\d/g, function($0, pos) { 268 return parseInt($0)+pos; 269 }); 270 if (/^(\d)\1+$/.test(numberStr)) return false; // 顺减 271 return true; 272 } 273 274 /** 275 * 键盘回车事件 276 * @param e 277 * @param fn 278 */ 279 function enterEvent(e, fn) 280 { 281 if ($.browser.msie) 282 { 283 if (event.keyCode == 13) eval(fn); 284 } 285 else 286 { 287 if (e.which == 13) eval(fn); 288 } 289 } 290 291 /** 292 * 获取字符串长度 (一个中文字符长度为2) 293 * @param str 294 */ 295 function getLength(str) 296 { 297 if (isNull(str)) return 0; 298 var strlen = 0; 299 for(var i = 0; i < str.length; i ++) 300 { 301 if(str.charCodeAt(i) > 128) 302 { 303 strlen += 2; 304 } 305 else strlen ++; 306 } 307 return strlen; 308 } 309 310 /** 311 * 截取指定长度字符串 (包含中文字符) 312 * @param str 313 * @param len 314 */ 315 function subStrCharacter(str, len) 316 { 317 var strlen = 0; 318 var s = ""; 319 if (isNull(str)) return s; 320 var tmpLen = getLength(str); 321 for(var i = 0;i < str.length;i++) 322 { 323 if(str.charCodeAt(i) > 128) 324 { 325 strlen += 2; 326 } 327 else 328 { 329 strlen ++; 330 } 331 s += str.charAt(i); 332 if(strlen >= len && strlen < tmpLen) 333 { 334 return s + "..." ; 335 } 336 } 337 return s; 338 } 339 340 341 /*图片延迟加载*/ 342 function lazyload(option) 343 { 344 var settings = {defObj:null, defHeight:0}; 345 settings = $.extend(settings, option); 346 var defHeight = settings.defHeight; 347 var defObj = $(settings.defObj).find("img[lazy-src]"); 348 var pageTop = function () { 349 return document.documentElement.clientHeight + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - settings.defHeight; 350 }; 351 var imgLoad = function () { 352 defObj.each(function () { 353 if ($(this).offset().top <= pageTop()) { 354 var xsrc = $(this).attr("lazy-src"); 355 if (xsrc) { 356 $(this).attr("src", xsrc).removeAttr("lazy-src"); 357 } 358 } 359 }); 360 }; 361 imgLoad(); 362 $(window).on("scroll", imgLoad); 363 } 364 365 //验证身份证号方法 366 function isIdCard(idcard) 367 { 368 //var Errors=new Array("验证通过!","身份证号码位数不对!","身份证号码出生日期超出范围或含有非法字符!","身份证号码校验错误!","身份证地区非法!"); 369 var area = {11:"北京", 370 12:"天津",13:"河北", 371 14:"山西",15:"内蒙古", 372 21:"辽宁",22:"吉林", 373 23:"黑龙江",31:"上海", 374 32:"江苏",33:"浙江", 375 34:"安徽",35:"福建", 376 36:"江西",37:"山东", 377 41:"河南",42:"湖北", 378 43:"湖南",44:"广东", 379 45:"广西",46:"海南", 380 50:"重庆",51:"四川", 381 52:"贵州",53:"云南", 382 54:"西藏",61:"陕西", 383 62:"甘肃",63:"青海", 384 64:"宁夏",65:"新疆", 385 71:"台湾",81:"香港", 386 82:"澳门",91:"国外"}; 387 388 var idcard,Y,JYM; 389 var S,M; 390 var idcard_array = new Array(); 391 idcard_array = idcard.split(""); 392 if(area[parseInt(idcard.substr(0,2))]==null) return false; 393 switch(idcard.length) 394 { 395 case 15: 396 if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 397 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )) 398 { 399 ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性 400 } 401 else 402 { 403 ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性 404 } 405 if(ereg.test(idcard)) return true; 406 else return false; 407 break; 408 case 18: 409 if( parseInt(idcard.substr(6,4)) % 4 == 0 410 || ( parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )) 411 { 412 ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 413 } 414 else 415 { 416 ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 417 } 418 if(ereg.test(idcard)) 419 { 420 S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ; 421 Y = S % 11; 422 M = "F"; 423 JYM = "10X98765432"; 424 M = JYM.substr(Y,1); 425 if(M == idcard_array[17]) return true; 426 else return false; 427 } 428 else return false; 429 break; 430 default: 431 return false; 432 break; 433 } 434 } 435 436 437 438 /** 439 * 判断是否为手机端 440 * @returns {Boolean} 441 */ 442 function isMobileClient() 443 { 444 var userAgentInfo = navigator.userAgent; 445 var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; 446 var flag = false; 447 for (var v = 0; v < agents.length; v ++) { 448 if (userAgentInfo.indexOf(agents[v]) > 0) { 449 flag = true; 450 break; 451 } 452 } 453 return flag; 454 } 455 456 /** 457 * 是否是安卓客户端 458 * @returns {Boolean} 459 */ 460 function isAndroidClientApp() 461 { 462 var userAgentInfo = navigator.userAgent; 463 if (userAgentInfo.indexOf('xwapp_andriod') > 0) return true; 464 else return false; 465 } 466 467 /** 468 * 是否是IOS客户端 469 * @returns {Boolean} 470 */ 471 function isIOSClientApp() 472 { 473 var userAgentInfo = navigator.userAgent; 474 if (userAgentInfo.indexOf('xwapp_ios') > 0) return true; 475 else return false; 476 }
最新同步更新地址:https://www.sunnyblog.top/
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的“推荐”将是我最大的写作动力!另外您也可以选择【关注我】,可以很方便找到我!
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/sunny1009 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!