// 手机号
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;
}
网友评论