美文网首页
vue,其他一些小工具

vue,其他一些小工具

作者: 偶头像超凶 | 来源:发表于2021-04-15 15:10 被阅读0次
    //  手机号
    isPhone(_val) {
        return /^1[345789]\d{9}$/.test(_val);
    },
    // 每隔4个字符加空格间隔
    replaceStr4(_val) {
        return _val.toString().replace(/(.{4})/g, '$1 ');
    },
    //  身份证
    isIdCard(_val) {
        return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(_val);
    },
    //  千元分隔符(第一个不是很稳定)
    //isQianfen(_val) {
    //  return _val.toString().replace(/\B(?=(\d{3})+$)/g, ',');
    //},
    isQianfen(s) {
        if (/[^0-9\.]/.test(s)) {
            return "invalid value";
        }
        s = s.replace(/^(\d*)$/, "$1.");
        s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
        s = s.replace(".", ",");
        var re = /(\d)(\d{3},)/;
        while (re.test(s)) {
            s = s.replace(re, "$1,$2");
        }
         s = s.replace(/,(\d\d)$/, ".$1");
         return s.replace(/^\./, "0.")
    }
    clearEmoji(n) {
        return n.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "")
    },
    /*
    获取 今天 YYYY-MM-DD
    this.$Tool.getDateScope('end');
    获取 一百年前 YYYY-MM-DD
    this.$Tool.getDateScope('start');
    **/
    getDateScope(type) {
        const date = new Date();
        let year = date.getFullYear();
        let month = date.getMonth() + 1;
        let day = date.getDate();

        if (type === 'start') {
            year = year - 100;
        } else if (type === 'end') {
            year = year + 2;
        }

        month = month > 9 ? month : '0' + month;
        day = day > 9 ? day : '0' + day;
        return `${year}-${month}-${day}`;
    },
    // 获取当前时间
    getCurrentDate() {
        const date = new Date();
        let year = date.getFullYear();
        let month = date.getMonth() + 1;
        let day = date.getDate();

        month = month > 9 ? month : '0' + month;
        day = day > 9 ? day : '0' + day;
        return `${year}-${month}-${day}`;
    },
    // 计算年龄
    getAge(str) {
        if (!str) return false;
        var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if (!r) return false;
        var d = new Date(r[1], r[3] - 1, r[4]);
        if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {
            var Y = new Date().getFullYear();
            return Y - r[1];
        }
    },
    // 获取值在数组的下标
    getArrIndex(arr_, val_) {
        let i = null;
        arr_.forEach((item, index) => {
            if (item == val_) {
                i = index;
            }
        })
        return i;
    },
    // 获取值在数组的下标
    getArrObjIndex(arr_, name, val_) {
        let i = null;
        arr_.forEach((item, index) => {
            if (item[name] == val_) {
                i = index;
            }
        })
        return i;
    },
    getDateDiff(sDate1, sDate2) { //sDate1和sDate2是2006-12-18格式 
        var aDate, oDate1, oDate2, iDays
        aDate = sDate1.split("-")
        oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式 
        aDate = sDate2.split("-")
        oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
        iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数 
        return iDays
    },
    // 时间格式化
    dateFormat(fmt, date) {
        let ret;
        if (typeof date != Date) {
            date = new Date(date);
        }
        const opt = {
            "Y+": date.getFullYear().toString(), // 年
            "m+": (date.getMonth() + 1).toString(), // 月
            "d+": date.getDate().toString(), // 日
            "H+": date.getHours().toString(), // 时
            "M+": date.getMinutes().toString(), // 分
            "S+": date.getSeconds().toString() // 秒
            // 有其他格式化字符需求可以继续添加,必须转化成字符串
        };
        for (let k in opt) {
            ret = new RegExp("(" + k + ")").exec(fmt);
            if (ret) {
                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
            }
        }
        return fmt;
    }

相关文章

网友评论

      本文标题:vue,其他一些小工具

      本文链接:https://www.haomeiwen.com/subject/dawdlltx.html