对数值的操作------空值判断、保留X位小数、强制保留X位小数、保留两位小数、将yyyyMMdd的时间格式转换成yyyy-MM-dd格式

477 阅读1分钟

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

1.空值判断

...args剩余参数用法

    1.剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

   2. 如果函数的最后一个命名参数以...为前缀,则它将成为一个数组,

其中从0(包括)到theArgs.length(排除)的元素由传递给函数的实际参数提供。

isNullOrBlank(...args){
	for(let i=0;i<args.length;i++){
		let argument=args[i];
		if(argument===null||argument===''||argument===undefined){
			return true;
		}
	}
	return false;
}

2.保留X位小数

NaN() 方法:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

formatDecimal(number,x){
	let value="-";
	x=x?x:1;
	if(!isNullOrBlank(number)){
		if(!NaN(number)){
			if(String(number).indexof('.')>-1){
			// number为小数时
				if(x==0){
					value=Math.round(number);
				}else{
					value=Math.round(number * Math.pow(10,x))/Math.pow(10,x);
				}
			}else{
			// number为整数时
				value=parseFloat(number);
			}
		}
	}
}

在这里插入图片描述

3.强制保留X位小数

forceFormatDecimal(number,x){
	let value=formatDecimal(number,x);
	if(value!='-'){
		value=value.toFixed(x);
	}
}

NumberObject.toFixed(num)

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

4.保留两位小数

isNaN() 函数用于检查其参数是否是非数字值。

isNaN(x)

如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。

keepTwoDecimal(value){
	let reg=/^\d+(.\d+)?$/;
	if(reg.test(value)){
		if(!isNullOrBlank(value)){
			if(!isNaN(value)){
				let split=String(value).split('.');
				if(split.length>1&&split[1].length>0){
					split[1]=split[1].substring(0,2);
					value=split.join('.');
				}
			}
		}
	}else{
		value=value.replace(/[^\d.]/g,'');
	}
	return value;
}

5.将yyyyMMdd的时间格式转换成yyyy-MM-dd格式

// 对Date的扩展,将Date转化为指定格式的String
// 年(y)可以用1-4个占位符,月(M)、日(d)、小时(h)、分(m)、秒(s)可以用1-2个占位符,星期(w)、毫秒(s)只能用1个占位符
// (new Date()).Format('yyyy/MM/dd w')          ===>  2020/01/01 星期三
// (new Date()).Format('yyyy-MM-dd hh:mm:ss.S')          ===>  2020/01/01 08:05:06.666
// (new Date()).Format('yyyy-M-d h:m:s.S')          ===>  2020-1-1 8:5:6.666
Date.prototype.Format=function(fmt){
	var o={
		'M+':this.getMonth()+1,
		'd+':this.getDate(),
		'h+':this.getHours(),
		'm+':this.getMinutes(),
		's+':this.getSeconds(),
		S:this.getMilliseconds()
	};
	var week=['日''一','二','三','四','五','六'];
	if(/(y+)/.test(fmt)){
		fmt=fmt.replace(RegExp.$1,(this.getFullYear()+'').substr(4-RegExp.$1.length);
	}
	if(/(w)/.test(fmt)){
		fmt=fmt.replace(RegExp.$1,'星期'+week[this.getDay()]);
	}
	for(var k in o){
		if(new RegExp('(' + k + ')').test(fmt)){
			fmt=fmt.replace(RegExp.$1,RegExp.$1.length==1?0[k]:('00'+o[k]).substr((''+o[k]).length));
		}
	}
	return fmt;
}