精华内容
下载资源
问答
  • Js 添加千分位分隔符

    2020-02-03 19:01:00
    let srcNumber = 123456789.12; let fee = srcNumber.toString(); let arr = fee.replace(new RegExp(",", "gm"), "").split("."); let resArr = []; arr[0].split("").reverse().forEach((num, index) =>...
    let srcNumber = 123456789.12;
    
    let fee = srcNumber.toString();
    let arr = fee.replace(new RegExp(",", "gm"), "").split(".");
    let resArr = [];
    arr[0].split("").reverse().forEach((num, index) => {
      if (index > 0 && index % 3 === 0) {
        resArr.push(",");
      }
      resArr.push(num);
    });
    let dem = arr[1];
    if (fee.indexOf(".") > 0) {
      dem = "." + (dem.length > 2 ? dem.substr(0, 2) : dem);
    }
    srcNumber = resArr.reverse().join("").concat(dem || "");
    

    转载请注明出处!

     

    展开全文
  • 目标: ...// 前端數字千分位使用逗號進行分隔 function strToNumFormat(value) { if (value === null || value === '') { return 0; } else { if (parseFloat(value).toLocaleString()==='NaN') {

    目标:
    var str = “1234567.12”
    在前端显示为: 1,234,567.12

    可以先将字符串转换为Number, 然后在使用toLocaleString()方法

    在这里插入图片描述

    // 前端數字千分位使用逗號進行分隔
    function strToNumFormat(value) {
    	if (value === null || value === '') {
    		return 0;
    	} else {
    		if (parseFloat(value).toLocaleString()==='NaN') {
    			return value;
    		}
    		return parseFloat(value).toLocaleString();
    	}
    }
    

    [参考文章] :

    展开全文
  • 使用js实现数字的千分位表示方法其实有很多,我这里介绍一种,如下是代码: <script> functiontoThousands(num){ if(!num)return; vardot=""; varnumb=""; num=num.toString(); if((num||0)....

    千分位表示数字的方法大家都不陌生,在涉及到金融领域的时候里面经常会用到,比如下面的金额效果:

    image.png

    使用js怎么实现上面的效果呢?使用js实现数字的千分位表示方法其实有很多,我这里介绍一种,如下是代码:

    <script>
      function toThousands(num) {
        	  if(!num) return; 
        	  var dot="";
        	  var numb="";
    		  num=num.toString();
        	  if((num||0).toString().indexOf(".")>-1){
        	  		dot=num.substring(num.indexOf("."));//.6689
        	  		numb=num.substring(0,num.indexOf("."));//123456723456
        	  }else{
        		  numb=num;
        	  }
        	    var result = [ ], counter = 0;
        	    numb = numb.split('');
        	    for (var i = numb.length - 1; i >= 0; i--) {
        	        counter++;
        	        result.unshift(numb[i]);
        	        if ((counter % 3==0) && i != 0) { result.unshift(','); }
        	    }
        	    return result.join('')+dot;
        }
    alert(toThousands(123456723456.6689));
    </script>

    代码说明:

    toString()函数可以把数字等其他非字符串类型转化为字符串,如果一个数字想使用字符串的函数比如indexOf()等就必须先把数字使用toString()转为字符串。

    str.substring(start,stop):截取字符串并返回新的字符串,[包括,不包括),下标从0开始,str不变

    str.indexOf(searchvalue):返回searchvalue在str中首次出现的位置,无则返回-1

    arr.unshift(e1,[e2,.,eN]):向数组的开头添加一个或更多元素,并返回新的长度。代码中的result.unshift(numb[i])的作用就是把整数部分“123456723456”从后往前依次放入到数组result的头部,并每隔3位加个“,”,最终变为123,456,723,456的样子。

    如果确实不清楚运行流程,在浏览器加个断点调试一下即可:

    image.png

    arr.join([separator]):作用是把数组转为字符串,即返回以separator分割的字符串,代码中result.join('')表示并不用什么分隔,相当于直接把数组转为字符串。

    展开全文
  • js千分位分隔符

    2018-05-31 20:46:58
    另外一种优化算法,因为字符串在 js 每次变化都会重新开辟内存,所有转化为数组会更加便捷; 3 算法2 function f(str) { const ret = Array.from(str).reverse().reduce((result,next,i,arr) => { if((i+1)%3 ...

    1 核心都是通过数组的reduce,不同的是,一个通过字符串,一个通过数组

    2 算法1

    var str = '123456789';
    //[9,8,7,6,5,4,3,2,1]
    function formatCash(str) {
      //不考虑入参的判断
      return String(str).split('').reverse().reduce((pre, next, index) => {
        return (index % 3) ? (next + "" + pre) : (next + ',' + pre);
      })
    }
    
    console.log(formatCash(str));

    另外一种优化算法,因为字符串在 js 每次变化都会重新开辟内存,所有转化为数组会更加便捷;

    3 算法2

    function f(str) {
        const ret = Array.from(str).reverse().reduce((result,next,i,arr) => {
            if((i+1)%3 === 0 && (i+1) !== arr.length) {
                result.push(next,',')
                return result;
            }
            result.push(next);
            return result;
            // return (index % 3) ? (next + "" + pre) : (next + ',' + pre);
        },[])
        return ret.reverse().join('');
    }

    3 算法3 正则

     var reg2 = /(?!^)(?=(\d{3})+$)/g;
    console.log(str2.replace(reg2,',');
    

    更多文章在github

    展开全文
  • JS实现千分位分隔符

    千次阅读 2017-10-22 20:09:17
    //加千分位逗号 continue; } str+= num [i] ;//倒着累加数字 } return str. split ( '' ).reverse().join( "" ) ;//字符串=>数组=>反转=>字符串 } 基本思路 原文链 :http ://blog .csdn...
  • 数据的长度判断、数据反转、每3位增加千分位分隔符并进行回调,直到全部加完 3. 千分位符加完之后,处理数据的正负,以及数据回正 function setSeperate(num){ // 对数据进行初步的筛选 num = String(Number...
  • JS 实现千分位分隔符

    2021-04-15 13:50:55
    formatMoney(num) { let reg=/\d{1,3}(?=(\d{3})+$)/g; return (num + '').replace(reg, '$&,'); }
  • 正则表达式 - 千分位分隔符

    千次阅读 2019-11-21 15:18:07
    下面来看看给数字添加千分位的正则表达式方法: let num = "12345678"; console.log(num.replace(/(\d)(?=(?:\d{3})+$)/g,'$1,'))//"12,345,678" 让我们来解析一下上面的代码。 正则表达式 /(\d)(?=(?:\d{3...
  • js金钱千分位分隔符

    2021-06-30 20:03:53
    金钱千分位分隔符: function moneyFormat(nMoney){ if(nMoney == 0){ return ‘0.00’; } if(nMoney && nMoney != null){ nMoney = String(nMoney); var sLeft = nMoney.split(’.’)[0], sRight = nMoney....
  • 1.添加千分位 例:1,000 /* *money表示金额,decimal表示保留几位小数 */ function moneyAdd(money,decimal){ decimal = decimal > 0 && decimal <= 20 ? decimal : 2; money = parseFloat((money +...
  • let a = '123456.235' a = Number(a).toFixed(2).toString().replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, "$1,") console.log(a,typeof(a),'1111111111') //123,456.24 string 1111111111
  • <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <...script type="text/javascript"> let input =
  • js添加千分位分割 function toThousands(num, n = 2) { if (!num || Number.isNaN(num)) { num = 0; } let newNum = Number(num); let re = /\B(?=(\d{3})+(?!\d))/g; let s = 10 ** n; return Math.round...
  • 用正则表达式实现千分位分隔符

    千次阅读 2018-02-18 22:04:23
    正则实现数字以每3位加逗号的表示,如12345678 输出为12,345,678。输入为整数时的代码为:num.toString().replace(/(\d)(?=(\d{3})+$)/g,'$1,')将数字num转化为字符串后,全局(/g)正向匹配,看是否符合断言(\d)(?...
  • 1、使用toLocaleString方法 let num = 1234567 num = num.toLocaleString() console.log(num)// 1,234,567 2、使用正则表达式 ‘1234567’.replace(/(?=(\B\d{3})+$)/g, ‘,’) // 1,234,567 ...
  • import java.text.DecimalFormat; public class MoneyFormat { public static void main(String args[]) { double n = 2000000.1458; DecimalFormat df = new DecimalFormat("#,###.00");... } } JavaScript
  • 将带有千分位分隔符的字符串相加之后再加上千分位分隔符 这个一个自己看起来都绕的需求。。。 再总结一下这句话,前几天接到一个需求,要计算总金额,本以为就一句话的事,没想到看了看后台返回的数据是带有千分位...
  • 另外一种优化算法,因为字符串在 js 每次变化都会重新开辟内存,所有转化为数组会更加便捷; 3 算法2 function f ( str ) { const ret = Array .from(str).reverse().reduce( ( result,next,i,arr ) => ...
  • num替换成想要变化的数字 num.toLocaleString('en-US', {minimumFractionDigits: 2})
  • js实现千分位分隔符

    2021-12-07 10:13:49
    最后返回commaArr与fractional以及flag的组合 代码: DOCTYPE html> <html> <head> <meta charset=utf-8> head> <body> <script type="text/javascript"> function _comma(number) { let commaArr = [] let flagStr...
  • 在项目里碰到需要把类似 '450000'的数字转换为会计记账所用的格式 '450,000.00' 分 隔千分位和小数点后不够两位数时自动补齐已下记录几种实现的方式 ps:如果不考虑后面的小数点最快捷的方法 "12345678.replace(/[0-9...
  • 千分位分隔符的demo

    千次阅读 2016-06-01 16:13:22
    处理分隔符的方法 * param{ * s:传递需要处理的数字,必传 * n:保留几位小数,默认保留2位 * } * retun:返回处理后的数据 */ function fmoney(s, n) { var reg= /^(-?\d+)(\.\d+...
  • toLocaleString方法 // 扩展性差 且如果本地语言不合适的话会不起作用 function format(v) { //这是用正则表达是检查是否是纯数字 if(/^[0-9]+$/.test(str)){ return (+v).toLocaleString() ...
  • 页面显示如下: ...输入的数字会自动添加千分位分隔符,移出文本框之后会保留两位小数--利用以下两个JS来实现 请输入: 2.在JSP页面显示后台获取的double数据,要求保留两位小数,且添加千分位分隔
  • JS实现千位分隔符

    千次阅读 2019-03-20 01:42:02
    return s.replace(/^\./,"0.") } 一套完整的金额转换加千位分隔符 js千位符 | js 千位分隔符 | js 金额格式化 js千位符 | js 千位分隔符 | js 金额格式化 保留两位小数(四舍五入): 保留两位小数(不四...
  • // 数字格式化——千分位分隔符 function formatNumber_thousands(num) { if (isNaN(num)) { throw new TypeError("参数不是一个数字"); } return ("" + num).replace(/(\d{1,3})(?=(\d{3})+(?:$|\.)).
  • 本文为大家详细介绍下使用JS添加千分位以及去掉千分位的实现代码,感兴趣的朋友可以参考下哈,希望对大家有所帮助
  • 如果数字比较长每3个数字用 “,” 隔开,方便查看,如:7,890,789.0现我们用几种方法实现(1)正则表达式("7890789.0").replace(/\d(?=(?:\d{3})+\b)/g, '$&,')这句代码什么意思呢,刚一看,比较迷茫,首先需要...
  • 同学前端面试遇到这么一个题目 :给数字添加千分位分隔符一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力(我是小白)上网百度了一波全是用正则表达式来解决的,正则这块我只懂皮毛...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 805
精华内容 322
关键字:

js千分位分隔符