JavaScript 使用正则表达式实现数字千位分隔符

作者:代码拾荒时间:2026-10-29 06:54:13浏览:151

本文介绍了在 JavaScript 中利用正则表达式与 replace 方法实现数字千位分隔符的两种技术方案。第一种方案通过匹配三位数字并插入逗号,支持正负号及小数点处理;第二种方案采用循环替换方式,先验证数字格式再逐步格式化整数部分。文章提供了完整代码示例及测试用例,帮助开发者快速掌握数字格式化的实现细节。

JavaScript 正则实现千位分隔符方案

近期网络上流传着使用 JavaScript 实现数字千位分隔符的面试题目,因此这里整理了一种基于正则表达式结合 replace 方法的实现方案。

具体代码实现如下:

var thousandBitSeparator = function(numStr){
var b = /([-+]?\d{3})(?=\d)/g;
return numStr.replace(b, function($0, $1){
return $1 + ',';
     });
 }

该方案支持正负号匹配及小数点区分,若发现错误欢迎指正。

此外,附上另一种网友提供的实现思路:

代码示例如下:

<script language="JavaScript" type="text/javascript">
function formatNumber(num){
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){
return num;
 }  
var a = RegExp.$1,b = RegExp.$2,c = RegExp.$3;
var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)){
b = b.replace(re,"$1,$2$3");
 }  
return a +""+ b +""+ c;
}  
var num=1234567/3;
alert("num="+num+",四舍五入:"+Math.round(num)+",两位有效数字:"+num.toFixed(2)+",添加千位分隔符:"+formatNumber(num));
</script>

以上就是本文的全部内容,希望对大家有帮助。

作者最新文章