export default {
    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 = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子;
        var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,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 = 0; i < 17; i++) {
                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;
        }
    }
}

我的js公共函数合集的更多相关文章

  1. JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

    工具地址:https://github.com/BothEyes1993/bes-jstools bes-jstools 100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outil ...

  2. 百度前端学院js课堂作业合集+分析(更新中...)

    第一课:简陋的登录框 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. PHP文件大小格式化函数合集

    比如碰到一个很大的文件有49957289167B,大家一看这么一长串的数字后面单位是字节B,还是不知道这个文件的大小是一个什么概念,我们把它转换成GB为单位,就是46.53GB.用下面这些函数就可以完 ...

  4. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。

    1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...

  5. VB6文件操作自定义函数合集之一

    '--与文件及文件夹操作相关的函数 '--必须引用FSO的ACTIVE OBJECT Dim strList As String '--列表串,返回文件列表 '================ '-- ...

  6. 转:common.js 常用js公共函数库

    转自其他博主,自己开发备用 var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data: data, d ...

  7. Mysql常用函数合集

    1. 字符函数 length(获取字节数,UTF-8编码中 一个汉字占3个字节,GBK编码中一个汉字占2个字节) select length('abc'); #结果:3 select length(' ...

  8. Octopus系列之js公共函数

    货币选择 ChangeCurrency(this.value) 示例 <select name="currency" id="sl_currency" c ...

  9. c++ string函数合集

    s.substr(x,len) 在s中取出从x位置开始,长度为len的字符串,并返回string类型的字符串. s.find(a) 在s中查找字符串a,并返回起始下标(从0开始),若不存在,返回184 ...

随机推荐

  1. shell中if/seq/for/while/until

    1.if语句格式:  if 判断条件:then statement1 statement2 fi; 例子: 判断/test/a普通文件是否存在,存在则输出yes,不存在则输出no,并创建.  #! / ...

  2. Win10系统下安装VC6.0教程

    学习一门语言最重要的一步是搭建环境,许多人搭建在搭建环境上撞墙了,就有些放弃的心理了:俗话说,工欲善其事,必先利其器:所以接下来我们进行学习C的第一步下载编程所用的工具;当然也有其它的软件,只不过初学 ...

  3. Elementary OS常见软件(TIM、微信、企业微信)安装(二)

    前言 最终没忍住还是把开发环境迁移到了Elementary OS上来,这其中也没少折腾,试过Ubuntu 20.04 LTS和deepin V20可以(),deepin真的很不错可能是我的电脑兼容性不 ...

  4. HttpClient4.3 连接池参数配置及源码解读

    目前所在公司使用HttpClient 4.3.3版本发送Rest请求,调用接口.最近出现了调用查询接口服务慢的生产问题,在排查整个调用链可能存在的问题时(从客户端发起Http请求->ESB-&g ...

  5. PVE简单迁移虚拟机

    工作中有2台PVE节点,但是没有做集群,如果有集群可以很方便的进行迁移.本次迁移的目的是: 目前有一台PVE1节点装的虚机资源使用较多,想迁移某台虚机到另一台PVE2. 1 备份 备份在web页面操作 ...

  6. 前端(web)知识-html

    前端由三部分组成: HTML(标签)--CSS(美化,修饰)--JS(执行指令) HTML(超文本标记语言,Hypertext Markup Language):是一种用于创建网页的标记语言. 本质上 ...

  7. 无效的HTTP_主机头Invalid HTTP_HOST header: '192.168.56.100:8888'. You may need to add '192.168.56.100' to ALLOWED_HOSTS.

    Invalid HTTP_HOST header: '192.168.56.100:8888'. You may need to add '192.168.56.100' to ALLOWED_HOS ...

  8. 红外遥控接收发射原理及ESP8266实现

    红外遥控是利用近红外光进行数据传输的一种控制方式.近红外光波长0.76um~1.5um ,红外遥控收发器件波长一般为 0.8um~0.94um ,具有传输效率高,成本低,电路实现简单,抗干扰强等特点, ...

  9. 如何解析 redis 的 rdb 文件

    目录 安装工具 解析 redis 的 rdb 文件 命令行工具使用,先看 --help 生成内存报告 使用参数过滤想要的数据 比较两个 rdb 文件 查看一个 key 的内存使用情况 常见问题 FAQ ...

  10. uniapp分包(详尽版)

    PS:本文是笔者对基于uniapp的一小程序项目进行分包后的复盘文档,不足之处请多多指教. 一:分包相关概念 本质上是改变项目的路由以及优化项目各个模块的启动时间的一种优化技术. 主包与分包的概念 1 ...