常用格式转换函数
//去除空格 type 1-所有空格 2-前后空格 3-前空格 4-后空格
function trim(value, trim) {
switch (trim) {
case 1:
return value.replace(/\s+/g, "");
case 2:
return value.replace(/(^\s*)|(\s*$)/g, "");
case 3:
return value.replace(/(^\s*)/g, "");
case 4:
return value.replace(/(\s*$)/g, "");
default:
return value;
}
}
//任意格式日期处理
//使用格式:
// {{ '2018-09-14 01:05' | formaDate(yyyy-MM-dd hh:mm:ss) }}
// {{ '2018-09-14 01:05' | formaDate(yyyy-MM-dd) }}
// {{ '2018-09-14 01:05' | formaDate(MM/dd) }} 等
function formaDate(value, fmt) {
var date = new Date(value);
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"w+": date.getDay(), //星期
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) {
if (k === 'w+') {
if (o[k] === 0) {
fmt = fmt.replace('w', '周日');
} else if (o[k] === 1) {
fmt = fmt.replace('w', '周一');
} else if (o[k] === 2) {
fmt = fmt.replace('w', '周二');
} else if (o[k] === 3) {
fmt = fmt.replace('w', '周三');
} else if (o[k] === 4) {
fmt = fmt.replace('w', '周四');
} else if (o[k] === 5) {
fmt = fmt.replace('w', '周五');
} else if (o[k] === 6) {
fmt = fmt.replace('w', '周六');
}
} else if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
//字母大小写切换
/*type
1:首字母大写
2:首页母小写
3:大小写转换
4:全部大写
5:全部小写
* */
function changeCase(str, type) {
function ToggleCase(str) {
var itemText = ""
str.split("").forEach(
function(item) {
if (/^([a-z]+)/.test(item)) {
itemText += item.toUpperCase();
} else if (/^([A-Z]+)/.test(item)) {
itemText += item.toLowerCase();
} else {
itemText += item;
}
});
return itemText;
}
switch (type) {
case 1:
return str.replace(/\b\w+\b/g, function(word) {
return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase();
});
case 2:
return str.replace(/\b\w+\b/g, function(word) {
return word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase();
});
case 3:
return ToggleCase(str);
case 4:
return str.toUpperCase();
case 5:
return str.toLowerCase();
default:
return str;
}
}
//字符串循环复制,count->次数
function repeatStr(str, count) {
var text = '';
for (var i = 0; i < count; i++) {
text += str;
}
return text;
}
//字符串替换
function replaceAll(str, AFindText, ARepText) {
raRegExp = new RegExp(AFindText, "g");
return str.replace(raRegExp, ARepText);
}
//字符替换*,隐藏手机号或者身份证号等
//replaceStr(字符串,字符格式, 替换方式,替换的字符(默认*))
//ecDo.replaceStr('18819322663',[3,5,3],0)
//result:188*****663
//ecDo.replaceStr('asdasdasdaa',[3,5,3],1)
//result:***asdas***
//ecDo.replaceStr('1asd88465asdwqe3',[5],0)
//result:*****8465asdwqe3
//ecDo.replaceStr('1asd88465asdwqe3',[5],1,'+')
//result:"1asd88465as+++++"
function replaceStr(str, regArr, type, ARepText) {
var regtext = '',
Reg = null,
replaceText = ARepText || '*';
//repeatStr是在上面定义过的(字符串循环复制),大家注意哦
if (regArr.length === 3 && type === 0) {
regtext = '(\\w{' + regArr[0] + '})\\w{' + regArr[1] + '}(\\w{' + regArr[2] + '})'
Reg = new RegExp(regtext);
var replaceCount = this.repeatStr(replaceText, regArr[1]);
return str.replace(Reg, '$1' + replaceCount + '$2')
} else if (regArr.length === 3 && type === 1) {
regtext = '\\w{' + regArr[0] + '}(\\w{' + regArr[1] + '})\\w{' + regArr[2] + '}'
Reg = new RegExp(regtext);
var replaceCount1 = this.repeatStr(replaceText, regArr[0]);
var replaceCount2 = this.repeatStr(replaceText, regArr[2]);
return str.replace(Reg, replaceCount1 + '$1' + replaceCount2)
} else if (regArr.length === 1 && type === 0) {
regtext = '(^\\w{' + regArr[0] + '})'
Reg = new RegExp(regtext);
var replaceCount = this.repeatStr(replaceText, regArr[0]);
return str.replace(Reg, replaceCount)
} else if (regArr.length === 1 && type === 1) {
regtext = '(\\w{' + regArr[0] + '}$)'
Reg = new RegExp(regtext);
var replaceCount = this.repeatStr(replaceText, regArr[0]);
return str.replace(Reg, replaceCount)
}
}
//格式化处理字符串
//ecDo.formatText('1234asda567asd890')
//result:"12,34a,sda,567,asd,890"
//ecDo.formatText('1234asda567asd890',4,' ')
//result:"1 234a sda5 67as d890"
//ecDo.formatText('1234asda567asd890',4,'-')
//result:"1-234a-sda5-67as-d890"
function formatText(str, size, delimiter) {
var _size = size || 3,
_delimiter = delimiter || ',';
var regText = '\\B(?=(\\w{' + _size + '})+(?!\\w))';
var reg = new RegExp(regText, 'g');
return str.replace(reg, _delimiter);
}
//现金额大写转换函数
//ecDo.upDigit(168752632)
//result:"人民币壹亿陆仟捌佰柒拾伍万贰仟陆佰叁拾贰元整"
//ecDo.upDigit(1682)
//result:"人民币壹仟陆佰捌拾贰元整"
//ecDo.upDigit(-1693)
//result:"欠人民币壹仟陆佰玖拾叁元整"
function upDigit(n) {
var fraction = ['角', '分', '厘'];
var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
var unit = [
['元', '万', '亿'],
['', '拾', '佰', '仟']
];
var head = n < 0 ? '欠人民币' : '人民币';
n = Math.abs(n);
var s = '';
for (var i = 0; i < fraction.length; i++) {
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
}
s = s || '整';
n = Math.floor(n);
for (var i = 0; i < unit[0].length && n > 0; i++) {
var p = '';
for (var j = 0; j < unit[1].length && n > 0; j++) {
p = digit[n % 10] + unit[1][j] + p;
n = Math.floor(n / 10);
}
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
//s = p + unit[0][i] + s;
}
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
}
//保留2位小数
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
//名称截取成一位数
function nametransform(value) {
if (value) {
if (value.length > 1) {
return value.slice(0, 1);
} else {
return value;
}
} else {
return value;
}
}
//时间戳转化为标准格式
function formatDateTime(inputTime) {
var date;
if (inputTime) {
date = new Date(Number(inputTime) * 1000);
} else {
date = new Date();
}
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
};
//时间戳转化为标准格式
function formatDateTimecourse(timestamp) {
let date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
let Y = date.getFullYear() + '-';
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
let D = date.getDate() + ' ';
let h = date.getHours() + ':';
let m = date.getMinutes() ;
if(m<10){
m = '0'+m
}
let s = date.getSeconds();
let time = Y + M + D + ' ' + h + m
return time;
};
//时间戳转化为标准格式
function formatDateTimehour(inputTime) {
let currentdate = new Date();
let time;
let countdown;
// console.log(inputTime)
if (Number(inputTime) * 1000 - currentdate.getTime() > 0) {
time = Math.floor((Number(inputTime) * 1000 - currentdate.getTime()) / 1000);
} else {
return false;
}
var str = '0';
var hour = Math.floor(time / 60 / 60 % 24);
hour = hour < 10 ? str + hour : hour;
var minutes = Math.floor(time / 60 % 60);
minutes = minutes < 10 ? str + minutes : minutes;
var seconds = Math.floor(time % 60);
seconds = seconds < 10 ? str + seconds : seconds;
countdown = hour + ":" + minutes + ":" + seconds;
return countdown;
};
function formatVideotime(time) {
var str = '0';
var hour = Math.floor(time / 60 / 60 % 24);
hour = hour < 10 ? str + hour : hour;
var minutes = Math.floor(time / 60 % 60);
minutes = minutes < 10 ? str + minutes : minutes;
var seconds = Math.floor(time % 60);
seconds = seconds < 10 ? str + seconds : seconds;
return hour + ":" + minutes + ":" + seconds;
}
function formatlessontime(timestamp) {
let date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
let Y = date.getFullYear() + '-';
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
let D = date.getDate() + ' ';
let h = date.getHours() + ':';
let m = date.getMinutes();
if (m < 10) {
m = '0' + m
}
let s = date.getSeconds();
let time = h + m;
return time;
}
// 解析富文本
function strcharacterDiscode(str) {
// 加入常用解析
str = str.replace(/ /g, ' ');
str = str.replace(/"/g, "'");
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/•/g, '•');
str = str.replace(/ /g, ' ');
str = str.replace(/ /g, ' ');
return str;
};
//图片和style转换
function formatImg(html) {
var imgUrl = 'https://e.zkezy.com/';
//var imgUrl = config.globalData.imgUrl;
var newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
//console.log(match);
var match = match.replace(/style=[\'\"]?([^\'\"]*)[\'\"]?/i, '');
var list = [];
match = match.replace(/src=[\'\"]/i, function(a, b) {
return a + imgUrl;
//return 'οnclick="console.log(12312312);" '+a+imgUrl;
});
match = match.replace(/src=[\'\"]?([^\'\"]*)[\'\"]?/gi, function(a, b) {
MyPreviewList.push(b)
return 'οnclick="mypreviewfun(\'' + b + '\')"' + a;
});
return match;
});
return newContent;
}
//图片和style转换
function formatImgtwo(html) {
var imgUrl = 'https://e.zkezy.com/';
var newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
var match = match.replace(/src=[\'\"]/i, function(a, b) {
return a + imgUrl;
});
return match;
});
return newContent;
}
// 数字大于一万
function readingvolume(num) {
if (num >= 10000) {
num = (num / 10000).toFixed(2) + '万'
return num;
} else {
return num;
}
}
// 字符串转数组
function transtr(str) {
var array = str.split(',');
return array;
}
export default {
trim,
changeCase,
repeatStr,
replaceAll,
replaceStr,
formatText,
upDigit,
toDecimal2,
formaDate,
nametransform: nametransform, //字符串截取第一位
formatDateTime: formatDateTime, //时间戳转化为标准格式
strcharacterDiscode: strcharacterDiscode, //解析富文本
formatDateTimehour: formatDateTimehour, //转化时间 带小时
readingvolume: readingvolume, //转化阅读量
transtr: transtr, //字符串转数组
formatImg: formatImg,
formatImgtwo: formatImgtwo,
formatVideotime: formatVideotime,
formatlessontime: formatlessontime, //几点上课
formatDateTimecourse: formatDateTimecourse
}