js实现金额数转简体/繁体中文
最近在开发项目的时候遇到一个需求,要求把金额数转成繁体中文显示,例如1700,显示成壹仟柒佰元,不排除后期会更改需求为显示简体中文,因此统一进行封装。
/*** @description 数字转中文* @param {Number|String} num 数字[正整数]* @param {String} type 文本类型,lower|upper,默认upper* @example number2text(100000000) => "壹亿元整"*/
function number2text(number, type = 'upper') {// 配置const confs = {lower: {num: ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'],unit: ['', '十', '百', '千', '万'],level: ['', '万', '亿']},upper: {num: ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'],unit: ['', '拾', '佰', '仟'],level: ['', '万', '亿']},decimal: {unit: ['分', '角']},maxNumber: 999999999999.99}// 过滤不合法参数if (Number(number) > confs.maxNumber) {console.error(`The maxNumber is ${confs.maxNumber}. ${number} is bigger than it!`)return false}const conf = confs[type]const numbers = String(Number(number).toFixed(2)).split('.')const integer = numbers[0].split('')const decimal = Number(numbers[1]) === 0 ? [] : numbers[1].split('')// 四位分级const levels = integer.reverse().reduce((pre, item, idx) => {let level = pre[0] && pre[0].length < 4 ? pre[0] : []let value = item === '0' ? conf.num[item] : conf.num[item] + conf.unit[idx % 4]level.unshift(value)if (level.length === 1) {pre.unshift(level)} else {pre[0] = level}return pre}, [])// 整数部分const _integer = levels.reduce((pre, item, idx) => {let _level = conf.level[levels.length - idx - 1]let _item = item.join('').replace(/(零)\1+/g, '$1') // 连续多个零字的部分设置为单个零字// 如果这一级只有一个零字,则去掉这级if (_item === '零') {_item = ''_level = ''// 否则如果末尾为零字,则去掉这个零字} else if (_item[_item.length - 1] === '零') {_item = _item.slice(0, _item.length - 1)}return pre + _item + _level}, '')// 小数部分let _decimal = decimal.map((item, idx) => {const unit = confs.decimal.unitconst _unit = item !== '0' ? unit[unit.length - idx - 1] : ''return `${conf.num[item]}${_unit}`}).join('')// 如果是整数,则补个整字return `${_integer}元` + (_decimal || '整')
}
完美调用
number2text(1700) // 壹仟柒佰元
number2text(1700, 'lower') // 一千七百元
js实现金额数转简体/繁体中文相关推荐
- php 繁体自动转简体,繁体中文转换为简体中文的PHP函数
繁体中文转换为简体中文的PHP函数 更新时间:2006年10月09日 00:00:00 作者: 前几天我在oso论坛上问有没有这个源程序,没人回复.终于下定决心移植一个这样的函数,感谢网友Keye ...
- JavaScript简体繁体中文转换
<script type="text/javascript" language="javascript"> <!-- function win ...
- 讨巧的站点简体/繁体中文切换方法
http://www.cnbruce.com/blog/showlog.asp?cat_id=5&log_id=780 这个繁体是简体字体下的繁体字而已,只是表现形式而已,不过话说回来,在网页 ...
- 正则表达式--匹配简体繁体中文姓名,还有少数民族的·号
1 ^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$ 匹配:羅伊爾·阿凡提·买买提 转载于:https://www.cnblogs.com/Mumble2/p/107667 ...
- java 判断繁体_java获取系统语言(区分简体中文和繁体中文)
[(一).功能 当一个系统有了一定规模,可能要销售到国外其它国家,这时候要实现多种资源文件. 本代码示例将介绍怎样实现: 一个系统同时具有简体,繁体,英文等不同资源文 之前做android应用时遇 ...
- JS 实现网页的简体繁体切换
网页中实现 js 繁体简体切换 这个是公司一位同事实现的功能,网站的实施是我,但不知道是他原创还是借鉴的. 首先是封装的 js 代码 1 // 网页简繁体转换 2 // 本js用于客户在网站页面选择繁 ...
- java web网站 js 简体繁体切换_通过JS实现网站繁体简体互换
//网页简繁体转换//本js用于客户在网站页面选择繁体中文或简体中文显示,默认是正常显示,即简繁体同时显示//在用户第一次访问网页时,会自动检测客户端语言进行操作并提示.此功能可关闭//本程序只在UT ...
- 中文简体繁体之间的转换
中文简体繁体之间的转换 2007 年 09 月 13 日 星期四 10:58 对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然, ...
- 【自然语言处理】opencc:中文繁体☞中文简体的转换
在看蚂蚁金服人工智能团队写的一篇关于中文的NLP的论文时,才知道有opencc这么个库,可以将中文繁体转为中文简体,大大简化了处理过程. 如果用的pycharm直接点开解释器,搜opencc,然后in ...
最新文章
- 热烈欢呼:cnblogs.com博客园首页通过W3C验证
- 新建一个doophp项目
- 12.6日个人工作总结
- CSS 修饰图片的5种方法
- Linux有待完善的小缺陷的累记
- 以太网峰会:网络管理员已成濒危职业
- IAR软件中直接查看编译后代码大小
- 商城系统PageBean分页 Cookie存储浏览记录
- python设计模式-模板方法模式 1
- AgileEAS.NET平台开发实例-药店系统-视频教程系列-索引
- oracle数据库如何写翻页_在oracle数据库中的分页SQL语句怎么写?
- VS2010对话框中使用MSChart控件
- 华为手机USB测试灰色
- 融金所:云办公提升P2P金融“生命”
- springboot 优雅关闭_SpringBoot 2.3.0 优雅关闭 shutdown graceful
- php获取汉字的首字母,PHP获取汉字的首字母
- 【论文阅读01】2021 兵棋推演的智能决策技术与挑战 尹奇跃
- SQL高效先进先出算法
- 云计算基础架构 (三)Mongodb
- 这个夏天,有些东西需要记忆