常用格式转换

常用格式转换函数

//去除空格 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(/&nbsp;/g, ' ');
	str = str.replace(/&quot;/g, "'");
	str = str.replace(/&amp;/g, '&');
	str = str.replace(/&lt;/g, '<');
	str = str.replace(/&gt;/g, '>');
	str = str.replace(/&#8226;/g, '•');
	str = str.replace(/&nbsp;/g, ' ');
	str = str.replace(/&nbsp;/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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值