字符串中插入千位分隔符

我们知道,假设有1000000人民币(或其他货币),普遍来说,使用分隔符将它进行分割 。结果变成这样 1,000,000。同理,有1234908653人民币,使用分隔符进行分隔之后1,234,908,653

在字符串中插入千位分割符,它的结果和对人民币进行分隔符分割的结果是一样的,思路也一致。

function thousandSign(number) {
  let str = String(number) // 数字转换为字符串
  let remainder = str.length % 3 // 计算字符串除3的余数
  let res = '' // 保存插入千位符后的结果
  for(let i = remainder; i < str.length; i = i + 3){
    res = res + ',' + str.substr(i, 3)
  }
  remainder === 0 ? res = res.substr(1) : res = str.substr(0, remainder) + res
  // 余数为0,去掉第一个字符','
  // 余数不为0,从下标0截取remainder个字符并拼接到res前面
  return res
}
let thousandNumber = thousandSign(1589470000)
console.log(thousandNumber) // 1,589,470,000

// 正则表达式实现
function thousandSign2(num) {
  return (num+"").replace(/\d(?=(\d{3})+$)/g, "$&,")
}
console.log(thousandSign2(1589470000)) // 1,589,470,000
//vue过滤器 千分位展示数值
filters:{
	qianfen(value){
		let reg = /\d{1,3}(?=(\d{3})+$)/g
		let text = String(value)
		return text.replace(reg,'$&,')
	}
}

<div>{{ '19999' | qianfen }}div>

你可能感兴趣的:(javascript,string)