我的js公共函数合集


在uni开发中制定一些自己的公共函数, 主要有 数据有效定义、模态框、身份证号等一系列要被用到的验证和常用的代码。   isDefin: function(value) { //数据是否被定义         if (value == null || value == "" || value == "undefined" || value == undefined || value == "null" || value ==             "(null)" || value == 'NULL' || typeof(value) == 'undefined') {             return false;         } else {             value = value + "";             value = value.replace(/\s/g""); //全局匹配空白字符             if (value == "") {                 return false;             }             return true;         }     },     /**      * 显示模态加载      *  uni.hideLoading(); //关闭      */     show_progress:function() {        uni.showLoading({            'title':'玩命加载中...',            'mask':true        })     },     diyToast:function(title,icon="none",position="center"){ //自定义提示         if(icon=="none"||icon=="success"||icon=="loading"){             uni.showToast({                 "title":title,                 "duration":1500,                 "position":position,                 "icon":icon             })         }else{             uni.showToast({                 "title":title,                 "duration":1500,                 "position":position,                 "image":icon             })         }     },     /**      * 验证手机号      * @param mobile      * @returns {boolean}      */     checkMobile:function(mobile) {         if (mobile.length == 0) {             this.diyToast('请输入手机号');             return false;         }         if (mobile.length != 11) {             this.diyToast('请输入有效的手机号码');             return false;         }         var myreg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;         if (!myreg.test(mobile)) {             this.diyToast('请输入有效的手机号码');             return false;         }         return true;     },     /**      * 验证身份证号      */     checkRealNunber:function(realNumber) {         if (!isDefine(realNumber)) {             this.diyToast('身份证号不能为空!');             return false;         }         var myreal = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;         if (!myreal.test(realNumber)) {             this.diyToast('请输入有效的身份证号!');             return false;         }         return true;     },     /**      * 验证是否为空      */     checkAction:function(val,title="输入") {         if (val.length == 0||this.isDefin(val)==false) {             this.diyToast(title+"不能为空哦~");             return false;         }         return true;     },     /**      * 编码url参数      * @param {Object} param      */     enUrlData:function(param){         return encodeURIComponent(JSON.stringify(param));     },     /**      * 解码url参数      * @param {Object} param      */     deUrlData:function(param){         return JSON.parse(decodeURIComponent(param));     },     idcard:function(gets){         //该方法由佚名网友提供, 验证身份证(准确验证);         var Wi = [ 79105842163791058421 ];// 加权因子;         var ValideCode = [ 101098765432 ];// 身份证验证位值,10代表X;
        if (gets.length == 15) {             return isValidityBrithBy15IdCard(gets);         }else if (gets.length == 18){             var a_idCard = gets.split("");// 得到身份证数组             if (isValidityBrithBy18IdCard(gets)&&isTrueValidateCodeBy18IdCard(a_idCard)) {                 return true;             }             return false;         }         return false;
        function isTrueValidateCodeBy18IdCard(a_idCard) {             var sum = 0// 声明加权求和变量             if (a_idCard[17].toLowerCase() == 'x') {                 a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作             }             for ( var i = 0i < 17i++) {                 sum += Wi[i] * a_idCard[i];// 加权求和             }             valCodePosition = sum % 11;// 得到验证码所位置             if (a_idCard[17] == ValideCode[valCodePosition]) {                 return true;             }             return false;         }
        function isValidityBrithBy18IdCard(idCard18){             var year = idCard18.substring(6,10);             var month = idCard18.substring(10,12);             var day = idCard18.substring(12,14);             var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));             // 这里用getFullYear()获取年份,避免千年虫问题             if(temp_date.getFullYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){                 return false;             }             return true;         }
        function isValidityBrithBy15IdCard(idCard15){             var year =  idCard15.substring(6,8);             var month = idCard15.substring(8,10);             var day = idCard15.substring(10,12);             var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));             // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法             if(temp_date.getYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){                 return false;             }             return true;         }     }