在JavaScript中用逗号格式化数字
我找到了一个很好的函数,详细介绍了如何在JavaScript中用逗号格式化数字,并认为我会在此处重现它。它基本上接受任何数字,然后将其转换为带格式的字符串,并以逗号分隔千位。该number_format()功能在PHP中可用,在通过AJAX调用返回格式之前,我一直依靠PHP来对格式进行排序。现在,我可以将此函数包含到我的JavaScript库中,并在客户端进行此操作。
该函数通过使用正则表达式先将字符串拆分为整数和十进制,然后再按三位数的组将数字拆分。
使用的正则表达式为(\ d +)(\ d {3}),该表达式查找三个数字的序列,后跟任意数字。这是一个小技巧,可导致正则表达式引擎从右到左而不是从左到右工作。
function addCommas(nStr){nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 =x.length> 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
这会导致在每个第三个数字字符中添加一个逗号。因此,对于数字123456,将返回字符串123,456。这里还有更多示例。
addCommas(1000); // 1,000addCommas(12345); // 12,345
addCommas(1234567890); // 1,234,567,890
addCommas(12345.1234); // 12,345.1234
该站点还详细介绍了格式化数字的创建过程,其中包括不同的参数。这意味着您可以使用任何东西,而不用逗号分隔三个数字的块。
function addSeparatorsNF(nStr, inD, outD, sep){nStr += '';
var dpos = nStr.indexOf(inD);
var nStrEnd = '';
if (dpos != -1) {
nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
nStr = nStr.substring(0, dpos);
}
var rgx = /(\d+)(\d{3})/;
while (rgx.test(nStr)) {
nStr = nStr.replace(rgx, '$1' + sep + '$2');
}
return nStr + nStrEnd;
}
之所以创建此函数,是因为并非每个数字都采用相同的格式。例如,数字1234的格式可能为1,234甚至是1.234。
该函数采用以下参数
nStr:这是要格式化的数字。这可能是数字或字符串。没有对此输入进行验证。
inD:这是字符串的十进制字符。这通常是一个点,但可能还有其他东西。
outD:这是将十进制字符更改为的内容。
sep:这是分隔符,通常是逗号。
该函数采用输入字符串,并根据小数点字符将其分为两部分。小数点前的字符串与前一个函数使用的正则表达式相同,主要区别是分隔符取自函数参数。
这里有一些例子。
alert(addSeparatorsNF(1234567890,'.','.',',')); // 1,234,567,890alert(addSeparatorsNF(12345.1234,'.','POINT','COMMA')); // 第12章
alert(addSeparatorsNF(12345.1234,'5','POINT','COMMA')); // 1COMMA234POINT.1234
alert(addSeparatorsNF('1234,56',',','.',',')); // 1,234.56
以上是 在JavaScript中用逗号格式化数字 的全部内容, 来源链接: utcz.com/z/311496.html