玩转千分符

286 阅读1分钟
/* 
 * millimeter:实现大数字的千分符处理
 *   @params
 *   @return
 *     [string]千分符后的字符串
 * by LYR on 2019/08/13
 */
 ~function(){
    function millimeter() {
    	return this.replace(/\d{1,3}(?=(\d{3})+$)/g, content => content + ',');
    	//?= 正向预查,?=(\d{3})+$ 必须符合3位结尾  3个3个多个3个;
    	// 整段意思,开头以1-3位数字开始,后边必须以3位3位一起;
    }
    
    /* 扩展到内置类String.prototype上 */
    "millimeter"].forEach(item => {
    	String.prototype[item] = eval(item);
    });
}();

let num = "15628954"; //=>"15,628,954" 千分符
console.log(num.millimeter());
num = "112345678256874"; //=>"12,345,678,256,874"
console.log(num.millimeter());


====第二种=====
// 把字符串倒过来加
num = num.split('').reverse().join('');
for (let i = 2; i < num.length - 1; i += 4) {
	let prev = num.substring(0, i + 1),
		next = num.substring(i + 1);
	num = prev + "," + next;
}
num = num.split('').reverse().join('');
console.log(num);