javascript数字转中文大写

这篇具有很好参考价值的文章主要介绍了javascript数字转中文大写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

有时候业务需要做大写【一二三四五六七八九十】的标题,那对于js普通的数据结构排序是按【0123456789】。所以我们需要做一些数字的转换,实现小写转大写才能满足业务需求。文章来源地址https://www.toymoban.com/news/detail-509785.html

js实现数字转大写

//阿拉伯数字转大写,整数转大写
const numToCapital = (num, type = '') => {
  if (!num) return 0
  const strNum = Number((num + '').replace(/[,,]*/g, '')) + '' // 记录字符
  num = parseInt(Number(strNum)) // 转为整数,
  let capitalAr = '零一二三四五六七八九十'
  let unitAr = ['十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千']
  if (type) {
    capitalAr = '零壹贰叁肆伍陆柒捌玖拾'
    unitAr = ['拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'] // 单位
  }
  const resultAr = [] // 记录结果,后边json.in就可
  let index = strNum.length - 1 //记录位数
  let idx = 0 // 记录单位
  let percent = 10
  const turnNum = (num, percent, index) => {
    const unit = num / percent
    const capital = capitalAr[Number(strNum[index])]
    if (unit < 1) {
      resultAr.push(capital)
      // 出现11【一十一】这种情况
      if (Number(strNum[index]) === 1 && (strNum.length === 2 || strNum.length === 6 || strNum.length === 10)) {
        resultAr.pop()
      }
      return false //结束递归
    } else {
      if (capital === '零') {
        // 万和亿单位不删除
        if (!['万', '亿'].includes(resultAr[resultAr.length - 1])) {
          resultAr.pop()
        }
        // 前面有零在删掉一个零
        if (resultAr[resultAr.length - 1] === '零') {
          resultAr.pop()
        }
      }
      resultAr.push(capital)
      // 过滤存在【零万】【零亿】这种情况
      if (['万', '亿'].includes(resultAr[resultAr.length - 2]) && capital === '零') {
        resultAr.pop()
      }
      // 过滤【1亿万】这种情况
      if (resultAr[0] === '万' && resultAr[1] === '亿') {
        resultAr.shift()
      }
      // 末尾【零】删掉
      if (resultAr[0] === '零') {
        resultAr.pop()
      }
      resultAr.push(unitAr[idx++])
      if (index !== 0) {
        turnNum(num, percent * 10, --index)
      }
    }
  }
  turnNum(num, percent, index)
  return resultAr.reverse().join('')
}

// console.log(numToCapital(1512345672, 'capital'))
// 壹拾伍亿壹仟贰佰叁拾肆万伍仟陆佰柒拾贰

console.log(numToCapital('125,0000,0000'))
//一百二十五亿
console.log(numToCapital('10,0000'))
//十万
console.log(numToCapital('12,0000'))
//十二万
console.log(numToCapital('10,0010'))
//十万零一十
console.log(numToCapital('100,1000', true))
//壹佰万壹仟
console.log(numToCapital('0010'))
//十

到了这里,关于javascript数字转中文大写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • M330左键有时候按下没反应的解决 - 换微动

    罗技M330鼠标左键有时候按下没反应,原因是微动老了要换新的了。 1、电烙铁/锡条(最主要的是这两个,其他可以不需要,操作电烙铁时候一定要小心,不要碰到被烫到) 2、小号螺丝刀,给眼镜用的那种,用来拆鼠标的螺丝(共2个螺丝) 视频教程: https://www.bilibili.com/vi

    2024年02月09日
    浏览(60)
  • javascript数字转中文大写

    有时候业务需要做大写【一二三四五六七八九十】的标题,那对于js普通的数据结构排序是按【0123456789】。所以我们需要做一些数字的转换,实现小写转大写才能满足业务需求。

    2024年02月11日
    浏览(48)
  • 在Android Studio导入一个项目之后,通常需要下载Gradle的相应版本,但是AS的自动下载很慢,有时候甚至会失败。会出现类似Error:connect time out等错误...

    用Android Studio导入一个项目时,用Gradle构建过程中报错误,估计是下载gradle.zip文件时访问不到,应该是被墙了,网速太慢,下载不了外网资源。错误有如下情况:1、加载过慢2、下载超时3、下载失败 解决方法如下: 1、下载对应的gradle版本 在Project的视图下,找到gradle,里面的

    2024年02月03日
    浏览(84)
  • Java将数字金额转换成中文大写形式

    在项目中有时候需要将数字金额转成中文形式,如120.23为“壹佰贰拾圆贰角叁分“,下面是代码实现

    2024年02月06日
    浏览(42)
  • 用 JavaScript 检测键盘大写锁定键的状态 - JS 判断大写锁定

    用户在输入密码的时候,由于看不到输入的字母,这时如果 Caps Lock 大写锁定键打开,会给用户造成不必要的困扰。让我们看看如何使用JavaScript检测大写锁定。 KeyboardEvent 上有一个名为 getmodifierState 的方法,我们可以使用它来执行此操作。这可以在键盘相关事件的事件侦听器

    2024年02月20日
    浏览(67)
  • java人民币数字转大写汉字(小写转为大写).java

    java--人民币小写(金额)转为大写(金额转换)_CY_99的博客-CSDN博客_实数小写金额转大写pta         因为汉语读法的特殊性把数字通过四位进行分割,因为千、百、十是重复使用的(壹百,壹百万,壹佰亿)。千、百、十我们看做四位中的小单位。亿和万看做四位结束后的大单

    2023年04月08日
    浏览(41)
  • jquery 数字金额转化为大写金额

    示例:money:100 转化为 壹佰元整 //大写金额元币 function DaXieJinE(money) {     // 汉字的数字     var cnNums = new Array(\\\'零\\\', \\\'壹\\\', \\\'贰\\\', \\\'叁\\\', \\\'肆\\\', \\\'伍\\\', \\\'陆\\\', \\\'柒\\\', \\\'捌\\\', \\\'玖\\\');     // 基本单位     var cnIntRadice = new Array(\\\'\\\', \\\'拾\\\', \\\'佰\\\', \\\'仟\\\');     // 对应整数部分扩展单位     var cnIn

    2024年04月12日
    浏览(37)
  • C#将货币金额数字转大写汉字

    目录 一、对输入数字的处理 二、源码 1、Main() 2.类库         用正则表达式对输入的数字判断是否符合货币格式,小数点前的数字串的长度是否不大于13。

    2024年01月18日
    浏览(43)
  • .NET神器:轻松实现数字转大写金额的秘籍与示例代码

      概述: .NET中实现数字转大写金额可通过现有库或自定义方法。自定义方法示例使用递归将数字分段转换为中文大写金额,处理了千、百、十、个位数。实际应用中可根据需求进一步扩展,例如处理小数部分或负数。 在.NET中,你可以使用以下方案之一来实现将数字转成大写

    2024年03月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包