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. 'sortbitwise'是什么意思

    问题 flag sortbitwise 在ceph中是什么意思,在Jewel版本下可以看到多了这个flags [root@lab8106 current]# ceph -s cluster ffe7a ...

  2. SQL Server 不同数据间建立链接服务器进行连接查询

        在平时查询以及导数据时,经常会遇到需要使用两个数据库里数据的情况,这时就会用到在两个服务器之间建立一个链接,进行操作,脚本语句如下: 举例:例如你在测试服务器上想要查询业务库里的数据信息,此脚 ...

  3. RedHat Linux-配置YUM仓库

    范例:配置Yum仓库 Yum软件仓库的作用是为了进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术.可以把Yum想象成是一个硕大的软件仓库,里面保存有几乎所有常用的工具,而且只需要 ...

  4. new Date在不同浏览器识别问题

    原文 http://www.cnblogs.com/yangxiaopei/articles/4708157.html 4. 正确的做法 以下列出正确的做法: var time1 = (timesta ...

  5. Android 滑动删除控件推荐

    implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0' <?xml version="1.0" enc ...

  6. metasploit数据库使用学习

    metasploit为了方便,自动将当前工作区的内容放入数据库 首先就是工作区 -a 增加工作区,-d删除工作区 不同工作区的内容会分开储存到数据库 default工作区 test工作区 db_imp ...

  7. mongo命令行操作

  8. nginx的403权限问题

    修改访问目录的权限为755 找到Nginx的配置文件nginx.conf,做如下改变: (1)将user nobody; 改为user root; (2)找到 autoindex  off 更改为on ...

  9. Android ALSPS驱动分析

    一.alsps的初始化函数和重要结构体 epl2182_init // Epl2182.c (kernel-3.10\drivers\misc\mediatek\alsps\epl2182-new) ...

  10. jQuery 第三章 CSS操作

    .css() .attr() .prop() .css() 参数填法:如下所示 ↓  可填px 可不填,注意点:background-color  这类属性,需要填成 小驼峰式  background ...