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. linux中ugo权限管理(chmod/chown)

    查看ugo权限: ll  [root@localhost test]# ll total 12 -rwxr-xr-x 2 root root 4 Oct  3 11:44 a lrwxrwxrwx 1 ...

  2. 配置内网访问的TV

    前言 通过内网模式访问tv远程机器 方法 云主机配置 一台云主机,云主机申请两个公网IP 云主机启动两个frps进程绑定到两个内网的ip 客户端配置 远程一台linux跳板机运行frpc,启动两个进程 ...

  3. Python_多进程_pool进程池

    多进程典型案例: 1.将子进程的进程名作为列表中的元素,在父进程中遍历(异步)执行 #coding: utf-8 from multiprocessing import Pool import os, ...

  4. JVM中的常量池详解

    在Java的内存分配中,总共3种常量池: 转发链接:https://blog.csdn.net/zm13007310400/article/details/77534349 1.字符串常量池(Stri ...

  5. Mac系统使用Parallels Desktop安装Win10

    1.Parallels Desktop破解版下载 2.原版Windows 10 2004 X64位 (原版安装)2020 11 Windows 系统镜像必须为原版,ghost版不行.亲测ghost版本 ...

  6. mysql学习笔记1(mysql的基本架构)

    mysql基本架构图 如图所示: 1 . MySQL 可以分为 Server 层和存储引擎层两部分 Server 层包括连接器.查询缓存.分析器.优化器.执行器等,涵盖 MySQL 的大多数核心服务功 ...

  7. 转换文件格式遭遇 FileNotFoundError:[WinError 2]系统找不到指定的文件

    重启试试

  8. Druid配置和初始化参数 转发地址图片有

    配置数据源 1.添加上 Druid 数据源依赖. <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dep ...

  9. 在多个浏览器中添加IDM插件

    许多朋友下载了IDM(Internet Download Manager)不知如何使用.把包含视频的链接放到软件新建任务,下载下来的的却是网页而不是视频.该软件下载视频的其中一个方法,需安装浏览器插件 ...

  10. 详细了解IDM的“计划任务”功能

    今天我们一起来看看IDM下载器的"计划任务"功能. IDM是什么就不多说了,只需要知道它是一个十分好用的资源下载器就行了,下载速度非常快,搭配一些浏览器扩展程序甚至能加速百度盘的下 ...