推荐答案
function formatNumber(num) { return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); }
本题详细解读
1. 函数功能
formatNumber(num)
函数的主要功能是将一个数字 num
格式化为每三位加一个逗号的字符串形式。例如,输入 1234567
,输出 1,234,567
。
2. 代码解析
num.toString()
: 将数字num
转换为字符串,以便后续使用正则表达式进行处理。replace(/\B(?=(\d{3})+(?!\d))/g, ',')
: 使用正则表达式进行替换操作。\B
: 匹配非单词边界的位置,确保不会在数字的开头或结尾添加逗号。(?=(\d{3})+(?!\d))
: 这是一个正向预查,匹配每三位数字的位置。(\d{3})+
表示连续的三位数字,(?!\d)
确保这些三位数字后面没有更多的数字。g
: 全局匹配,确保所有符合条件的位置都被替换。','
: 将匹配到的位置替换为逗号。
3. 示例
console.log(formatNumber(1234567)); // 输出: "1,234,567" console.log(formatNumber(9876543210)); // 输出: "9,876,543,210" console.log(formatNumber(1000)); // 输出: "1,000"
4. 注意事项
- 该函数假设输入
num
是一个有效的数字。如果输入不是数字,可能会导致意外的结果。 - 该函数适用于整数和小数部分不超过三位的数字。如果小数部分超过三位,可能需要额外的处理。