加入收藏 | 设为首页 | 会员中心 | 我要投稿 葫芦岛站长网 (https://www.0429zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

JavaScript常用工具方法封装

发布时间:2019-02-15 02:49:27 所属栏目:优化 来源:佚名
导读:JavaScript 1. type 类型判断 isString(o){//是否字符串 returnObject.prototype.toString.call(o).slice(8,-1)==='String' } isNumber(o){//是否数字 returnObject.prototype.toString.call(o).slice(8,-1)==='Number' } isBoolean(o){//是否boolean retu
副标题[/!--empirenews.page--]

JavaScript常用工具方法封装

JavaScript

1. type 类型判断

  1. isString (o) { //是否字符串 
  2.     return Object.prototype.toString.call(o).slice(8, -1) === 'String' 
  3. }  
  4. isNumber (o) { //是否数字 
  5.     return Object.prototype.toString.call(o).slice(8, -1) === 'Number' 
  6. }  
  7. isBoolean (o) { //是否boolean 
  8.     return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean' 
  9. }  
  10. isFunction (o) { //是否函数 
  11.     return Object.prototype.toString.call(o).slice(8, -1) === 'Function' 
  12. }  
  13. isNull (o) { //是否为null 
  14.     return Object.prototype.toString.call(o).slice(8, -1) === 'Null' 
  15. }  
  16. isUndefined (o) { //是否undefined 
  17.     return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined' 
  18. }  
  19. isObj (o) { //是否对象 
  20.     return Object.prototype.toString.call(o).slice(8, -1) === 'Object' 
  21. }  
  22. isArray (o) { //是否数组 
  23.     return Object.prototype.toString.call(o).slice(8, -1) === 'Array' 
  24. }  
  25. isDate (o) { //是否时间 
  26.     return Object.prototype.toString.call(o).slice(8, -1) === 'Date' 
  27. }  
  28. isRegExp (o) { //是否正则 
  29.     return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp' 
  30. }  
  31. isError (o) { //是否错误对象 
  32.     return Object.prototype.toString.call(o).slice(8, -1) === 'Error' 
  33. }  
  34. isSymbol (o) { //是否Symbol函数 
  35.     return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol' 
  36. }  
  37. isPromise (o) { //是否Promise对象 
  38.     return Object.prototype.toString.call(o).slice(8, -1) === 'Promise' 
  39. }  
  40. isSet (o) { //是否Set对象 
  41.     return Object.prototype.toString.call(o).slice(8, -1) === 'Set' 
  42. }  
  43. isFalse (o) { 
  44.     if (!o || o === 'null' || o === 'undefined' || o === 'false' || o === 'NaN') return true 
  45.         return false 
  46. }  
  47. isTrue (o) { 
  48.     return !this.isFalse(o) 
  49. }  
  50. isIos () { 
  51.     var u = navigator.userAgent; 
  52.     if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {//安卓手机 
  53.         // return "Android"; 
  54.         return false 
  55.     } else if (u.indexOf('iPhone') > -1) {//苹果手机 
  56.         // return "iPhone"; 
  57.         return true 
  58.     } else if (u.indexOf('iPad') > -1) {//iPad 
  59.         // return "iPad"; 
  60.         return false 
  61.     } else if (u.indexOf('Windows Phone') > -1) {//winphone手机 
  62.         // return "Windows Phone"; 
  63.         return false 
  64.     }else{ 
  65.         return false 
  66.     } 
  67. }  
  68. isPC () { //是否为PC端 
  69.     var userAgentInfo = navigator.userAgent; 
  70.     var Agents = ["Android", "iPhone", 
  71.                 "SymbianOS", "Windows Phone", 
  72.                 "iPad", "iPod"]; 
  73.     var flag = true; 
  74.     for (var v = 0; v < Agents.length; v++) { 
  75.         if (userAgentInfo.indexOf(Agents[v]) > 0) { 
  76.             flag = false; 
  77.             break; 
  78.         } 
  79.     } 
  80.     return flag; 
  81. }  
  82. browserType(){ 
  83.     var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 
  84.     var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器 
  85.     var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 
  86.     var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1; 
  87.     var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器   
  88.     var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器 
  89.     var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器 
  90.     var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器 
  91.  
  92.     if (isIE) { 
  93.         var reIE = new RegExp("MSIE (d+.d+);"); 
  94.         reIE.test(userAgent); 
  95.         var fIEVersion = parseFloat(RegExp["$1"]); 
  96.         if(fIEVersion == 7) return "IE7" 
  97.         else if(fIEVersion == 8) return "IE8"; 
  98.         else if(fIEVersion == 9) return "IE9"; 
  99.         else if(fIEVersion == 10) return "IE10"; 
  100.         else return "IE7以下"//IE版本过低 
  101.     } 
  102.     if (isIE11) return 'IE11'; 
  103.     if (isEdge) return "Edge"; 
  104.     if (isFF) return "FF"; 
  105.     if (isOpera) return "Opera"; 
  106.     if (isSafari) return "Safari"; 
  107.     if (isChrome) return "Chrome"; 
  108. }  
  109. checkStr (str, type) { 
  110.     switch (type) { 
  111.         case 'phone':   //手机号码 
  112.             return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str); 
  113.         case 'tel':     //座机 
  114.             return /^(0d{2,3}-d{7,8})(-d{1,4})?$/.test(str); 
  115.         case 'card':    //身份证 
  116.             return /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/.test(str); 
  117.         case 'pwd':     //密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线 
  118.             return /^[a-zA-Z]w{5,17}$/.test(str) 
  119.         case 'postal':  //邮政编码 
  120.             return /[1-9]d{5}(?!d)/.test(str); 
  121.         case 'QQ':      //QQ号 
  122.             return /^[1-9][0-9]{4,9}$/.test(str); 
  123.         case 'email':   //邮箱 
  124.             return /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/.test(str); 
  125.         case 'money':   //金额(小数点2位) 
  126.             return /^d*(?:.d{0,2})?$/.test(str); 
  127.         case 'URL':     //网址 
  128.             return /(http|ftp|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/.test(str) 
  129.         case 'IP':      //IP 
  130.             return /((?:(?:25[0-5]|2[0-4]d|[01]?d?d).){3}(?:25[0-5]|2[0-4]d|[01]?d?d))/.test(str); 
  131.         case 'date':    //日期时间 
  132.             return /^(d{4})-(d{2})-(d{2}) (d{2})(?::d{2}|:(d{2}):(d{2}))$/.test(str) || /^(d{4})-(d{2})-(d{2})$/.test(str) 
  133.         case 'number':  //数字 
  134.             return /^[0-9]$/.test(str); 
  135.         case 'english': //英文 
  136.             return /^[a-zA-Z]+$/.test(str); 
  137.         case 'chinese': //中文 
  138.             return /^[u4E00-u9FA5]+$/.test(str); 
  139.         case 'lower':   //小写 
  140.             return /^[a-z]+$/.test(str); 
  141.         case 'upper':   //大写 
  142.             return /^[A-Z]+$/.test(str); 
  143.         case 'HTML':    //HTML标记 
  144.             return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str); 
  145.         default: 
  146.             return true; 
  147.     } 
  148.  
  149.     // 严格的身份证校验 
  150.     isCardID(sId) { 
  151.         if (!/(^d{15}$)|(^d{17}(d|X|x)$)/.test(sId)) { 
  152.             alert('你输入的身份证长度或格式错误') 
  153.             return false 
  154.         } 
  155.         //身份证城市 
  156.         var aCity={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:"国外"}; 
  157.         if(!aCity[parseInt(sId.substr(0,2))]) {  
  158.             alert('你的身份证地区非法') 
  159.             return false 
  160.         } 
  161.  
  162.         // 出生日期验证 
  163.         var sBirthday=(sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2))).replace(/-/g,"/"), 
  164.             d = new Date(sBirthday) 
  165.         if(sBirthday != (d.getFullYear()+"/"+ (d.getMonth()+1) + "/" + d.getDate())) { 
  166.             alert('身份证上的出生日期非法') 
  167.             return false 
  168.         } 
  169.  
  170.         // 身份证号码校验 
  171.         var sum = 0, 
  172.             weights =  [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], 
  173.             codes = "10X98765432" 
  174.         for (var i = 0; i < sId.length - 1; i++) { 
  175.             sum += sId[i] * weights[i]; 
  176.         } 
  177.         var last = codes[sum % 11]; //计算出来的最后一位身份证号码 
  178.         if (sId[sId.length-1] != last) {  
  179.             alert('你输入的身份证号非法') 
  180.             return false 
  181.         } 
  182.  
  183.         return true 
  184.     } 

(编辑:葫芦岛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!