js - 数字转中文

JavaScript 中将阿拉伯数字转换为中文

转换代码

var _change = {
ary0: ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'],
ary1: ['', '十', '百', '千'],
ary2: ['', '万', '亿', '兆'],
init: function(name) {
this.name = name
},
strrev: function() {
var ary = []
for (var i = this.name.length; i >= 0; i--) {
ary.push(this.name[i])
}
return ary.join('')
},
pri_ary: function() {
var $this = this
var ary = this.strrev()
var zero = ''
var newary = ''
var i4 = -1
for (var i = 0; i < ary.length; i++) {
if (i % 4 == 0) {
//首先判断万级单位,每隔四个字符就让万级单位数组索引号递增
i4++
newary = this.ary2[i4] + newary //将万级单位存入该字符的读法中去,它肯定是放在当前字符读法的末尾,所以首先将它叠加入$r中,
zero = ''
//在万级单位位置的“0”肯定是不用的读的,所以设置零的读法为空
}
//关于0的处理与判断。
if (ary[i] == '0') {
//如果读出的字符是“0”,执行如下判断这个“0”是否读作“零”
switch (i % 4) {
case 0:
break //如果位置索引能被4整除,表示它所处位置是万级单位位置,这个位置的0的读法在前面就已经设置好了,所以这里直接跳过
case 1:
break
case 2:
break
case 3:
break
if (ary[i - 1] != '0') {
zero = '零'
}
//如果不被4整除,那么都执行这段判断代码:如果它的下一位数字(针对当前字符串来说是上一个字符,因为之前执行了反转)也是0,那么跳过,否则读作“零”
break
}
newary = zero + newary
zero = ''
} else {
//如果不是“0”
newary = this.ary0[parseInt(ary[i])] + this.ary1[i % 4] + newary
//就将该当字符转换成数值型,并作为数组ary0的索引号,以得到与之对应的中文读法,其后再跟上它的的一级单位(空、十、百还是千)最后再加上前面已存入的读法内容。
}
}
if (newary.indexOf('零') == 0) {
newary = newary.substr(1)
}
//处理前面的0
return newary
}
//倒转字符串。
}
//创建class类 function change() {
this.init.apply(this, arguments)
} change.prototype = _change // console.log(new change("10086").pri_ary()) // 一万八十六

chatgpt

JavaScript 中将阿拉伯数字转换为中文

function toChineseNum(num) {
let chnNumChar = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
let chnUnitSection = ["", "万", "亿", "万亿", "亿亿"];
let chnUnitChar = ["", "十", "百", "千"];
let strIns = '', chnStr = '';
let unitPos = 0;
let zero = true;
while (num > 0) {
let v = num % 10;
if (v === 0) {
if (!zero) {
zero = true;
chnStr = chnNumChar[v] + chnStr;
}
} else {
zero = false;
strIns = chnNumChar[v];
strIns += chnUnitChar[unitPos];
chnStr = strIns + chnStr;
}
unitPos++;
num = Math.floor(num / 10);
}
return chnStr;
}
toChineseNum(111180) // '一undefined一undefined一千一百八十'

js - 数字转中文的更多相关文章

  1. JS 数字 、中文、 英文、判断

    <pre name="code" class="html">单独的验证: 利用正则表达式限制网页表单里的文本框输入内容: 用正则表达式限制只能输入中 ...

  2. JS数字转中文

    function number2Chinese(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return '数据非法'; let unit = '京亿万仟佰 ...

  3. JS将数字转换为中文

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. JS URL传中文参数引发的乱码问题

    今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决. 解决方法一: 1.在JS里对中文参数进行两次转码 ...

  5. js数字验证

    1.JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g, ...

  6. 好用的jquery.animateNumber.js数字动画插件

    在做公司的运营报告页面时,有一个数字累计增加的动画效果,一开始,毫无头绪,不知如何下手,于是上网查资料,发现大多都是用的插件来实现的,那么今天,我也来用插件jquery.animateNumber.j ...

  7. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  8. js数字位数太大导致参数精度丢失问题

    最近遇到个比较奇怪的问题,js函数里传参,传一个位数比较大,打印arguments可以看到传过来的参数已经改变. 然后查了一下,发现确实是js精度丢失造成的.我的解决方法是将数字型改成字符型传输,这样 ...

  9. 超简单的js数字验证

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  10. JS数字键盘

    JS数字键盘,JS小键盘 CSS代码: #numberkeyboard { border: 1px solid #b3b3b3; background: #f2f3f7; height: 285px; ...

随机推荐

  1. 普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  2. bugku-source-wp详解

    bugku-source-wp详解 F12先看源代码 base64解码 提交flag 发现这个flag是假的 根据提示打开kali直接扫 命令:gobuster dir -u http://114.6 ...

  3. 前端必备基础知识之--------原生JS发送Ajax请求

    原生JS发送Ajax请求 ajax({ type: 'POST', url: 'http://10.110.120.123:2222', // data: param, contentType: 'a ...

  4. 通过this引用成员方法-类的构造器

    通过this引用成员方法 this代表当前对象,如果需要引用的方法就是当前类中的成员方法,那么可以使用"this成员方法"的格式来使用方法引用.首先是简单的函数式接口︰ 下面是一个 ...

  5. centos7笔记本使用iptables服务,将笔记本模拟成为出口路由器 PPPOE拨号+NAT+端口映射

    郑州洪水,闲置在家,捣鼓捣鼓 centos7笔记本使用iptables服务,将笔记本模拟成为出口路由器 PPPOE拨号+NAT+端口映射 环境: 1.笔记本单网口,无法做路由网关,手里有个闲置的USB ...

  6. TCP/IP RTT算法比较

    TCP重传机制Timeout特点: 设长了,重发就慢,效率和性能差: 设短了,重发就快,可能导致没有丢就重发,增加网络拥塞,导致更多的超时,更多的超时导致更多的重发. TCP协议引入2个概念: RTT ...

  7. jmeter性能监控

    jmeter监控内存,CPU等方法 (2018-06-26 15:39:37) 转载▼   分类: 性能测试 方法1:使用插件来监控CPU,内存等的使用情况1.需要的插件准备JMeterPlugins ...

  8. 通过Nacos配置刷新进行RabbitMQ消费者在线启停

    前提 公司在做一些金融相关业务,某些时候由于数据提供商定期维护或者特殊原因需要暂停某些服务的消费者.之前选用的消息队列技术栈是RabbitMQ,用于微服务之间的消息投递,对于这类需要暂停消费者的场景是 ...

  9. mysql03-默认的几个数据库

    https://blog.csdn.net/dj673344908/article/details/80482844 1.查看mysql默认的数据库 在安装好mysql后,登录mysql,执行语句:s ...

  10. 样本熵(SampEn)的C/C++代码实现与优化

    正文 本文不介绍什么是样本熵,具体推荐看此文https://blog.csdn.net/Cratial/article/details/79742363,写的很好,里面的示例也被我拿来测试代码写的对不 ...