JS的千分位算法实现思路

代码如下:

function commafy() {
var num = document.getElementById("NumA").value;
//1.先去除空格,判断是否空值和非数
num = num + "";
num = num.replace(/[ ]/g, "");
if (num == "") {
alert("空值,结束");
return;
}
if (isNaN(num)) {
alert("非数,结束");
return;
}
//2.针对是否有小数点,分情况处理
var index = num.indexOf(".");
if (index==-1) {//无小数点
var reg = /(-?\d+)(\d{3})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
} else {
var intPart = num.substring(0, index);
var pointPart = num.substring(index + 1, num.length);
var reg = /(-?\d+)(\d{3})/;
while (reg.test(intPart)) {
intPart = intPart.replace(reg, "$1,$2");
}
num = intPart +"."+ pointPart;
}
return alert(num);
}

(0)

相关推荐

  • 千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持用逗号隔开 0-9位 逗号隔开 JS代码如下: 复制代码 代码如下: /**         * JS格式化         * @param number 要格式化的数字         * @param d [0-9]位 逗号隔开         */ function numFormat(nu

  • js实现千分符和保留几位小数的简单实例

    js实现千分符转化 function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + ''; var l = s.split('.') [0].split('').reverse(), r = s.split('.') [1]; var t = ''; for (var i = 0; i < l.lengt

  • js 实现数值的千分位及保存小数方法(推荐)

    实例如下: /** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); * @return 格式的字符串,如'1,234,567.45' * @type String */ function formatNumber(num,cent,isThousand) { num = num.toString(

  • Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)

    在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式 ps:如果不考虑后面的小数点,最快捷的方法: "12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出 12 345 678 1.用循环的方式实现 function formatNum(str){ var newStr

  • JavaScript数值千分位格式化的两种简单实现方法

    在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化. function formatNumber(num) { if (isNaN(num)) { throw new TypeError("num is not a number"); } var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + nu

  • JS实现数字格式千分位相互转换方法

    实例如下: /** * 数字格式转换成千分位 *@param{Object}num */ function commafy(num){ if((num+"").Trim()==""){ return""; } if(isNaN(num)){ return""; } num = num+""; if(/^.*\..*$/.test(num)){ varpointIndex =num.lastIndexOf(&

  • js格式化金额可选是否带千分位以及保留精度

    js格式化金额,可选是否带千分位,可选保留精度,也是网上搜到的,但是使用没问题 复制代码 代码如下: /* 将数值四舍五入后格式化. @param num 数值(Number或者String) @param cent 要保留的小数位(Number) @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); @return 格式的字符串,如'1,234,567.45' @type String */ function formatNumber(num,cent,isT

  • JS 添加千分位与去掉千分位的示例

    复制代码 代码如下: function commafyback(num) { var x = num.split(','); return parseFloat(x.join("")); } function commafy(num) { num = num.toFixed(2) +""; var re=/(-?/d+)(/d{3})/ while(re.test(num)){ num=num.replace(re,"$1,$2"); } ret

  • js添加千分位的实现代码(超简单)

    JS 添加千分位,测试可以使用 <script language="javascript" type="text/javascript"> function comdify(n){ var re=/\d{1,3}(?=(\d{3})+$)/g; var n1=n.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;}); re

  • JS的千分位算法实现思路

    复制代码 代码如下: function commafy() { var num = document.getElementById("NumA").value; //1.先去除空格,判断是否空值和非数 num = num + ""; num = num.replace(/[ ]/g, ""); if (num == "") { alert("空值,结束"); return; } if (isNaN(num)

  • JS数字千分位格式化实现方法总结

    本文实例讲述了JS数字千分位格式化实现方法.分享给大家供大家参考,具体如下: 用js实现如下功能,将给定的数字转化成千分位的格式,如把"10000"转化成"10,000",并考虑到性能方面的因素. 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(split),如果直接数字转换为数组,就是一整个放进去了,不能单独取到每一位.然后通过循环,逐个倒着把数组中的元素插入到新数组的开头(unshift),第三次或三的倍数次,插入逗号,最后把新数组拼

  • js金额千分位的6种实现方法实例

    目录 方法一 数组分割法 方法二 字符截取法 方法三 求模法 方法四 正则表达式(先行断言) 方法五 通过Intl.NumberFormat 方法六 number.toLocaleString方式 总结 方法一 数组分割法 这种方法也是自己最容易想到的一种方式,通过将数组以点分割,然后按照3位一体进行字符的拼接 function format_with_array(number) { // 转为字符串,并按照.拆分 const arr = (number + '').split('.'); //

  • JS基于正则实现数字千分位用逗号分隔的方法

    本文实例讲述了JS基于正则实现数字千分位用逗号分隔的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js千分位逗号隔开</title> </head> <body> <script > var a = 222122122.6754

随机推荐