1.日期格式化
let dateUtil = {};
dateUtil.format = function(date, format) {
var o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3),
"S": date.getMilliseconds()
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
export default dateUtil;
2.登录md5加密
import crypto from 'crypto';
let Md5Util = {};
Md5Util.getEncryption = function (text) {
const md5 = crypto.createHash('md5');
md5.update(text);
let md5password = md5.digest('hex');
return md5password;
};
export default Md5Util;
3.正则验证手机号、姓名、邮箱、身份证
let RegExp = {
checkMobile(s) {
var regu = /^[1][3,4,5,6,7,8,9][0-9]{9}$/
if (regu.test(s)) {
return true
} else {
return false
}
},
checkNomalName(s) {
var regu = /^[\u4e00-\u9fa5]{2,}$/;
if (regu.test(s)) {
return true;
} else {
return false;
}
},
isEmail(str) {
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if (myReg.test(str)) return true;
return false;
},
checkIdCard(idCard) {
var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
if (regIdCard.test(idCard)) {
if (idCard.length == 18) {
var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2);
var idCardWiSum = 0
for (var i = 0; i < 17; i++) {
idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
}
var idCardMod = idCardWiSum % 11;
var idCardLast = idCard.substring(17);
if (idCardMod == 2) {
if (idCardLast == 'X' || idCardLast == 'x') {
return true;
} else {
return false;
}
} else {
if (idCardLast == idCardY[idCardMod]) {
return true;
} else {
return false;
}
}
}
} else {
return false
}
}
}
4.身份证、姓名打码
function idCardMask (idCard = '') {
return idCard.substr(0, 1) + idCard.slice(1, -4).replace(/\d/g, '*') + idCard.substr(-4)
}
function isNameMask(str) {
return str.substr(0,1) + new Array(str.length).join('*')
},
5.设置、获取、删除、清除sessionStorage / localStorage
function setSessionStorage(key, value) {
sessionStorage.setItem(key, value)
}
function getSessionStorage(key) {
return sessionStorage.getItem(key)
}
function delSessionStorage(key) {
sessionStorage.removeItem(key)
}
function clearSessionStorage() {
sessionStorage.clear()
}
6.数字每3位加一个逗号
function numberFormat(val){
if(typeof val ==="number"){
var str = val.toString();
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
val = str.replace(reg,"$1,");
return val;
}
}
7.车牌号校验
Vue.prototype._handlePlateNumInput = _handlePlateNumInput;
let plateNoReg = /^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/;
function _handlePlateNumInput(data = null, fieldName = null, areaFieldName = null, isPaste = false, self = null, wildcard = '') {
let _this = self ? self : this;
if (isPaste) {
setTimeout(() => {
_handlePlateNumInput(data, fieldName, areaFieldName, false, _this);
}, 200);
return;
}
let pData = data ? data : _this;
let plateNum = (pData[fieldName] !== undefined && pData[fieldName] !== null) ? pData[fieldName].toUpperCase() : '';
if (areaFieldName) {
if (plateNoReg.test(plateNum)) {
_this.$set(pData, areaFieldName, plateNum.substr(0, 1));
_this.$set(pData, fieldName, plateNum.substring(1));
} else if (!plateNoReg.test(pData[areaFieldName] + pData[fieldName])) {
plateNum = plateNum.replace(new RegExp('[^0-9a-zA-Z挂学警港澳使领' + wildcard + ']', 'ig'), '');
_this.$set(pData, fieldName, plateNum);
}
} else {
let area = plateNum.substr(0, 1);
let num = plateNum.substring(1);
num = num.replace(new RegExp('[^0-9a-zA-Z挂学警港澳使领' + wildcard + ']', 'ig'), '');
_this.$set(pData, fieldName, area + num);
}
}
<el-input v-model="formInline.province" placeholder="请输入省简称"></el-input>
<el-input v-model="formInline.num" placeholder="请输入车牌号"
@keyup.native="_handlePlateNumInput(formInline, 'num', 'province')"
@blur.native="_handlePlateNumInput(formInline, 'num', 'province')"
@change.native="_handlePlateNumInput(formInline, 'num', 'province')"
@paste.native="_handlePlateNumInput(formInline, 'num', 'province', true)"
></el-input>
<el-input v-model="formInline.PLATENO" placeholder="请输入完整车牌号"
@keyup.native="_handlePlateNumInput(formInline, 'PLATENO')"
@blur.native="_handlePlateNumInput(formInline, 'PLATENO')"
@change.native="_handlePlateNumInput(formInline, 'PLATENO')"
@paste.native="_handlePlateNumInput(formInline, 'PLATENO', null, true)"
></el-input>
8.校验日期格式yyyy-mm-dd
function isPeriodFormate(date) {
if (date.match(/^(\d{4})(-)(\d{2})(-)(\d{2})$/)) {
return date;
} else {
return '';
}
}
9.base64转file
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var bstr = window.atob(arr[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
10.生成唯一值uuid
function getUuid() {
var s = [];
var hexDigits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = '4';
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
s[8] = s[13] = s[18] = s[23] = '-';
const uuid = s.join('');
return uuid;
}
11.驼峰转换中划线
function toHump(name) {
return name.replace(/\-(\w)/g, function(all, letter) {
return letter.toUpperCase();
});
}
function toLine(name) {
return name.replace(/([A-Z])/g, '-$1').toLowerCase();
}
12.Bytes转KB\MB…
function renderSize(filesize) {
if (filesize == null || filesize === '' || filesize === 0) {
return '0KB';
} else if (filesize <= 1024) {
return '1KB';
}
var unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
var index = 0;
var srcsize = parseFloat(filesize);
index = Math.floor(Math.log(srcsize) / Math.log(1024));
var size = srcsize / Math.pow(1024, index);
size = size.toFixed(2);
return size + unitArr[index];
},