数字每3位数分割

下面分享一个数字以3位数分割的函数

function splitNumber(number, symbol = ','){
	//判断传入的是否是数字类型或是能转成数字的字符串
	if(typeof number == 'object' || Object.prototype.toString.call(Number(number)) !== '[object Number]' || Number.isNaN(Number(number))){
		throw new Error('请传递一个有效的数字类型')
	}
	let num = number+'';
	let regexp = /\B(?=(?:\d{3})+\b)/g;
	let result;
	//判断是否有小数点
	if(num.indexOf('.') > 0){//存在小数点
		let temp = num.split('.');
		let firstNumber = temp.shift().replace(regexp, symbol);
		let lastNumber = temp.pop();
		result = firstNumber.concat('.', lastNumber);
	}else{
		result = num.replace(regexp, symbol);
	}
	return result;	
} 
splitNumber(4564664.21) // "4,564,664.21"
splitNumber(5000000000) // "5,000,000,000"
百度已收录
分享