input组件中数字转成千分位的策略

  在Web前端开发中input组件若只限制数字输入,并且希望将这些数字按照千分位隔开的话,那么我们可以通过一个js方法来实现,如下所示:

toThousandsFormat(number) {
  if (number) {
    return ‘‘
  }
  if (num.toString().trim() == ‘‘) {
    return ‘‘
  }
  if (isNaN(number)) {
    return ‘‘
  }
  number = parseFloat(number.toString().replace(/[^\d.-]/g, ‘‘)).toFixed(2) + ‘‘ // 这里只保留两位有效数字
  if (number == ‘NaN‘) {
    return ‘‘
  }
  let numberArray = number.split(‘.‘)
  let intPart = numberArray[0].split(‘‘).reverse()
  let intPartLength = intPart.length
  let floatPart = numberArray[1]
  let formatValue = ‘‘
  for (let index = 0; index < intPart.length; index++) {
    formatValue += intPart[index] + ((index + 1) % 3 == 0 && index + 1 != intPartLength ? ‘,‘ : ‘‘)
  }
  let formatNumber = formatValue.split(‘‘).reverse().join(‘‘) + ‘.‘ + floatPart
  return formatNumber

  此外,还有一种简便的方式可以快速转换:

toThousandsFormat(number) {
  number = number.toString().replace(/,/g, ‘‘)
  number = parseFloat(number).toFixed(2).toString()
  number = number.replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
    return $1 + ‘,‘
  })
  return number
}  

原文地址:https://www.cnblogs.com/bien94/p/12669620.html

时间: 2024-10-25 04:22:15

input组件中数字转成千分位的策略的相关文章

[js开源组件开发]数字或金额千分位格式化组件

数字或金额千分位格式化组件 这次距离上一个组件<[js开源组件开发]table表格组件>时隔了一个月,由于最近的项目比较坑,刚挖完坑,所以来总结性提出来几个组件弥补这次的空缺,首先是金额和数字的千分位和小数点控制的组件,它的作用主要是在输入框时限制输入的内容为数字.也可以用于普通标签的数字格式化,效果如下图: demo演示地址请点击 http://www.lovewebgames.com/jsmodule/format-number.html 源码github托管地址请点击https://gi

c# 数字转成千分位字符串

首先要明确带了逗号之后  数字就变成字符串了 ,不再是数字了. 昨天做项目的时候需要格式化数字变成带逗号的,本来打算自己写个方法的,后来时间太紧了,就打算从网上查个,查来查去都是要对字符串的位进行操作,选了其中一个用了下,结果发现还有问题,瞬间无语 最中被我百度到了  这种写法   : C#中用最简单的方法把数字(不含小数)转换为千分位格式: 如1234567变成1,234,567 方法:x.ToString("###,###")   或  1234567.ToString("

数字显示千分位,将数字转换成千分位形式(用逗号隔开)

<script> var weekValue=10000000; if(weekValue!=0){ weekValue = addThousands(weekValue); console.log(weekValue); } function addThousands(number) { if(number==0){ return number; }else if(number==0.0){ return number; } var num = number + "";

把一串数字表示成千位分隔形式——JS正则表达式的应用

梳理思路 要先明白的是,我们将要转换成的数字格式是这样:从个位往左数起,每三位前插入一个千位分隔符,,即可以想象成我们要把每三位数字前面的那个空""匹配出来,并替换成千位分隔符,.每个千位分隔符后面的数字个数是3个或3的倍数个. 代码书写 创建一个正则表达式字面量,并加上全局匹配修饰符g.var reg = //g; W3C对全局匹配的解释是:查找所有匹配而非在找到第一个匹配后停止. 因为需要从右往左匹配,所以表示结尾的$是必须要有的.三位数字用\d{3}来表示,由于我们不知道究竟有多

输入一串随机数字,然后按千分位输出。

比如输入数字串为"123456789",输出为123,456,789 #!/bin/bash read -p "输入一串数字:" num v=`echo $num| sed 's/[0-9]//g'` if [ -n "$v" ] then     echo "请输入纯数字."     exit fi length=${#num} #表示num字符串的长度 len=0 sum='' for i in $(seq 1 $leng

请实现一个js脚本,要求做到将数字转化为千分位表示如:1234567转化为1,234,567

//法一 function parseNum(num){ var list = new String(num).split('').reverse(); for(var i = 0; i < list.length; i++){ if(i % 4 == 3){ list.splice(i, 0, ','); } } return list.reverse().join(''); } console.log(parseNum(10000121213)); //法二 function parseNu

Js笔试题之千分位格式化

用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素. 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(split),如果直接数字转换为数组,就是一整个放进去了,不能单独取到每一位.然后通过循环,逐个倒着把数组中的元素插入到新数组的开头(unshift),第三次或三的倍数次,插入逗号,最后把新数组拼接成一个字符串 n=1233456; toQfw(n); function toQfw(){ var arr

金额 千分位的分割方法

用js实现如下功能,将给定的数字转化成千分位的格式 字符串方式 function formatMoney(money) { //转为字符串 用字符串方法来实现 let str = money.toString(); let last = ''; //三位数以上的数据才进行格式化 while (str.length > 3) { //每次取末三位子字符串放到一个新的空字符串里并拼接上之前的末三位 //(slice第一个参数传负数,代表从尾部开始截取该个数) last = ',' + str.sli

edittext实现显示千分位格式

在edittext中你在输入1123456789过程中自动显示为1,123,456,789这种千分位格式的.那么我们该怎么做呢? 查阅Android edittext api发现它有这样一个方法addTextChangedListener,这个方法就是用来监听用户在输入过程中的事件监听,它会重写这几个方法: editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSeq