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树是一个非常有用的数据结构,可以应用于大部分文本信息抽取/转换之中,后续会开一个系列,对我在实践中摸索出来的各种抽取算法讲开来.比如中文时间抽取 ...
随机推荐
- svn sc create 命令行创建服务自启动
今天重装了系统,Subversion服务也得重装.照例输入代码: sc create svnserve binpath="d:\PortableApps\svn\svnserve.exe - ...
- ubuntu 切换工作区域
在Ubuntu 13.04中,默认是不激活多桌面工作空间的,所以在之前的版本可以在启动器看到的那个像“田”字的“工作区切换器”图标没有了,始终只有一个桌面了.要激活工作空间,在system setti ...
- 嵌入式 Linux下编译并使用curl静态库
#x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disa ...
- SWFUpload接受服务器Action返回的参数
首先我们要了解这个函数 function uploadSuccess(file, serverData) { try { var progress = new FileProgress(file, t ...
- java 地址记录
java在线API地址 http://docs.oracle.com/javase/7/docs/api/
- oracle 定时任务(DBMS_JOB)
示例如下: -- 每隔一分钟执行存储过程p1 create or replace procedure p2 as job_num number; begin dbms_job.submit(job_n ...
- CMake 入门
编写 CMakeLists.txt 首先编写 CMakeLists.txt 文件,并保存在与 main.cc 源文件同个目录下: # 单个源文件 # CMake 最低版本号要求 cmake_minim ...
- STL map详细用法和make_pair函数
今天练习华为上机测试题,遇到了map的用法,看来博客http://blog.csdn.net/sprintfwater/article/details/8765034:感觉很详细,博主的其他内容也值得 ...
- AI钻石风格logo教程
最终图像 与往常一样,这是我们要创建的最终图像: Step 1 按Ctrl+ N创建新文档.从单位下拉菜单中选择像素,在宽度和高度框中输入600,然后单击高级按钮.选择RGB,屏幕(72 PPI),并 ...
- jQuery hover demo
先放效果图: 百度云下载地址:http://pan.baidu.com/s/1dDpn1Sl 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...