最近做了一个js项目,需要把数字按照每三位,就用一个逗号分隔,做完后,我就想,这个算法也可以支持用户自定义的位数,进行分隔,就是用到了RegExp这个方法来拼接字符串,使其具有动态分隔的功能。
上代码:
function numberDivid(number,n){ var n = n || 3;//设置默认值 var reg = new RegExp("(\\d+)"+"(\\d{"+n+"})");//字符串拼接,把n带入正则表达式 numberString = number.toString();//把字符串转化成数组 numberArry = numberString.split(".");//小数点前面的数字进行分隔 number1 = numberArry[0]; number2 = numberArry.length > 1 ? "." + numberArry1 : ""; while(reg.test(number1)){ number1 = number1.replace(reg,"$1" + "," + "$2"); //这里$1,$2是正则匹配到的对象 } return number1 + number2;
总体看起来,代码最优的地方,就是设置了一个可以支持用户随心所欲操作的分隔位数,其他的代码就是一般性。
时间: 2024-10-14 21:56:09