javascript数字转汉字中文数字
/*
工具包
*/
var Utils={
/*
单位
*/
units:'个十百千万@#%亿^&~',
/*
字符
*/
chars:'零一二三四五六七八九',
/*
数字转中文
@number {Integer} 形如123的数字
@return {String} 返回转换成的形如 一百二十三 的字符串
*/
numberToChinese:function(number){
var a=(number+'').split(''),s=[],t=this;
if(a.length>12){
throw new Error('too big');
}else{
for(var i=0,j=a.length-1;i<=j;i++){
if(j==1||j==5||j==9){//两位数 处理特殊的 1*
if(i==0){
if(a[i]!='1')s.push(t.chars.charAt(a[i]));
}else{
s.push(t.chars.charAt(a[i]));
}
}else{
s.push(t.chars.charAt(a[i]));
}
if(i!=j){
s.push(t.units.charAt(j-i));
}
}
}
//return s;
return s.join('').replace(/零([十百千万亿@#%^&~])/g,function(m,d,b){//优先处理 零百 零千 等
b=t.units.indexOf(d);
if(b!=-1){
if(d=='亿')return d;
if(d=='万')return d;
if(a[j-b]=='0')return '零'
}
return '';
}).replace(/零+/g,'零').replace(/零([万亿])/g,function(m,b){// 零百 零千处理后 可能出现 零零相连的 再处理结尾为零的
return b;
}).replace(/亿[万千百]/g,'亿').replace(/[零]$/,'').replace(/[@#%^&~]/g,function(m){
return {'@':'十','#':'百','%':'千','^':'十','&':'百','~':'千'}[m];
}).replace(/([亿万])([一-九])/g,function(m,d,b,c){
c=t.units.indexOf(d);
if(c!=-1){
if(a[j-c]=='0')return d+'零'+b
}
return m;
});
}
};
使用方法:
<script>
Utils.numberToChinese(30000)
</script>
原文:http://www.codepearl.com/files/83.html
javascript数字转汉字中文数字的更多相关文章
- PHP金额工具类之将阿利伯数字转换为大写中文数字
1.将阿拉伯数字转换为中文大写数字 <?php namespace core\components; class PriceHelper extends \yii\base\Component{ ...
- JavaScript 中怎样判断文本框只能输出英文字母、汉字和数字,不能输入特殊字符!
JS-只能输入中文和英文2008-11-08 10:17在js中用正则表达式对象(RegExp)判断中文 ^[\u0391-\uFFE5]+$英文 ^[A-Za-z]+$中文和英文/^[\u0391- ...
- javascript 使用数组+循环+条件实现数字转换为汉字的简单方法。
这几天,博主碰到了几道关于数字转汉字的javascript算法题,在网上找了很多的答案,发现都有点复杂,于是我决定自己写一篇关于这种算法题的简单解法,以下是博主自己的见解,有不足的地方请多指教. 接下 ...
- javascript 中文数字阿拉伯数字转换类 Nzh
之前工作中碰到了数字转中文的情景,网上找的现成方法或多或少不合我的口味,最后还是自已写了一个. 现在整理了一下,补充了繁体,自定义字符,以及反函数(中文数字转阿拉伯数字) 现在发布出来,希望能合大家的 ...
- JavaScript实现把数字转换成中文
/** * 数字转换汉字大写 * @constructor * 用法示例:new NumberToChinese(122222).toUpper(); new NumberToChinese(1222 ...
- JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)
验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数 ...
- js只能输入数字、汉字、字母等正则匹配
只能输英文:<input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 只 ...
- 【JS】数字转大写中文
原文参考 逛到一道面试题,数字转大写中文的,搜索学习并记录于此. //自动转换数字金额为大小写中文字符,返回大小写中文字符串,最大处理到999兆 function changeMoneyToChine ...
- trie树信息抽取之中文数字抽取
这一章讲一下利用trie树对中文数字抽取的算法.trie树是一个非常有用的数据结构,可以应用于大部分文本信息抽取/转换之中,后续会开一个系列,对我在实践中摸索出来的各种抽取算法讲开来.比如中文时间抽取 ...
随机推荐
- Android按键事件传递流程(二)
5 应用层如何从Framework层接收按键事件 由3.2和4.5.4节可知,当InputDispatcher通过服务端管道向socket文件描述符发送消息后,epoll机制监听到了I/O事件, ...
- Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
mkdir jre cd jre ln -s 你的JDK目录/bin bin 例如:ln -s /usr/lib/jvm/jdk1.8.0_25/bin bin 原文地址:http://www.cnb ...
- 嵌入式 hi3518x平台h264+g711a封装mp4代码demo
先看代码吧,有代码有真相,具体代码的demo(下载demo的朋友请勿在网上上传我的demo,谢谢)下载连接为: http://download.csdn.net/detail/skdkjxy/8071 ...
- 解决oracle11g的ORA-12505问题
今天在使用SQL Developer的时候连不上去,报ORA-12505错误,但是SQLPLUS可以连接. 检查服务名,是OracleServiceORCL,那SID应当就是orcl,但是使用该SID ...
- 【C++】统计代码覆盖率(二)
嗷嗷嗷!!!好激动,我好蠢.不过最后还是解决了.呜呜呜 有些都是东一块西一块查的,如果有侵权欢迎私信我,我注明出处. 一 gcov&CMake 昨天试了下测试代码和被测代码都是c++的情况,直 ...
- MySQL_PHP学习笔记_2015_0614_PHP传参总结_URL传参_表单传参
1. PHP 传参总结 1.1 url 传参 解析方法(下面两种解读方式均可以): $firstName1 = $_GET['firstName']; $firstName2 = $_RE ...
- NSIS学习笔记(转)
转自:http://blog.csdn.net/lee353086/article/details/45919901 NSIS学习笔记Date:2015-05-20Author:kagulaEnv:V ...
- ansible playbook最佳实践
本篇主要是根据官方翻译而来,从而使简单的翻译,并没有相关的实验步骤,以后文章会补充为实验步骤,此篇主要是相关理论的说明,可以称之为中文手册之一,具体内容如下: Ansible playbooks最佳实 ...
- failback 和failover
dubbo 和motan都有在注册中心中都有这个概念 Failover 失效转移通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服 ...
- Python:数字
一.数字简介 数字可以直接访问,是不可更改并且不可分割的原子类型,这些在标准类型的分类中都谈到了.不可更改意味着变更数字值的实质是新对象的创建.当然,这些对于程序员来说都是透明的,不需过多考虑. 1. ...