推荐答案
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是一个有效的数字。如果输入不是数字,可能会导致意外的结果。 - 该函数适用于整数和小数部分不超过三位的数字。如果小数部分超过三位,可能需要额外的处理。