今天参加了一个前端笔试,最后一道题是给出一长数字,要你写一个函数返回给数字加千分符的效果
eg:传入1234567891.123,最后要输出1,234,567,891.123,问你如何实现。
我回来查了资料后发现可以用正则表达式的零宽断言来做,写是写出来了,但是有俩问题需要大佬回答,我把它们写在代码里了。
var thousandBitSeparator = function(numStr){
var b = /(?<=\d)(\d{3})/g; //1.断言自身出现的位置的后面能匹配表达式exp,具体怎么匹配的???
return numStr.replace(b, function($1){
return ','+$1;
});
}
alert(thousandBitSeparator('1234567891.123'));//1,234,567,891.123 这样挺完美的
alert(thousandBitSeparator('12345678912.123'));//1,234,567,8912.123 2.这就不符合题意了,怎么改呢???
守着星空守着你
相关分类