javascript汉字换数字
来源:互联网 发布:英剧 知乎 编辑:程序博客网 时间:2024/06/05 23:48
自己写的一个javascript汉字换数字
var chnNumChar = {
分:0.01,毛:0.1,
角:0.1,
零 : 0,
壹 : 1,
贰 : 2,
叁 : 3,
肆 : 4,
伍 : 5,
陆 : 6,
柒 : 7,
捌 : 8,
玖 : 9,
貮 : 2,
一:1,
二:2,
三:3,
四:4,
五:5,
六:6,
七:7,
八:8,
九:9,
两:2,
十 : 10,
拾 : 10,
百 : 100,
佰 : 100,
千 : 1000,
仟 : 1000,
万 : 10000,
萬 : 10000,
亿 : 100000000,
億 : 100000000,
兆 : 1000000000000
};
function ObjChangeToNumber(obj){
var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
var objVal = $(obj).val();
var afterVal = '';
var isNumber = false;
var isChn = false;
if(parseInt(objVal) == 0 || objVal == null || objVal == 'undefined'){
return 0;
}
if(parseInt(objVal) > 0){
isNumber = true;
}
if(!isNumber){
//考虑全汉字的格式
var arr = objVal.split('');
for(var i = 0; i < arr.length; i++){
console.log(arr[i]);
if(reg.test(arr[i])){
isChn = true;
}else{
isChn = false;
//break;
}
console.log(isChn);
}
}
if(isNumber){
afterVal = parseInt(objVal);
}else if(isChn){
//①第一判断是否含有[万]的情况
//②第二中判断是不含有[万]但是含有[千]的情况
//③第三中判断是不含有[万]不含有[千]含有[百]的情况
//④第四中判断是不含有[万]不含有[千]不含有[百]含有[十]的情况
//⑤第四中判断是不含有[万]不含有[千]不含有[百]不含有[十]的情况
//①实现
if(objVal.indexOf('万')>-1 || objVal.indexOf('萬')>-1){
//万前面的数字*10000+万后面的数字
var len = objVal.indexOf('万')>-1?objVal.indexOf('万'):objVal.indexOf('萬');
afterVal = changeNumber(objVal.substr(0,len)) * 10000 + changeNumber(objVal.substr(len+1))
}else{
afterVal = changeNumber(objVal)
}
}
console.log('afterVal===='+afterVal);
$("#afterChange").val(afterVal);
}
//这个方法主要用于转换汉字万以内的数字
function changeNumber(str){
var lenTmp = '';
var len = '';
var num = '0';
var thousand = false;
var hundred = false;
var ten = false;
str = str.replace('零','');
if(str.indexOf('千')>-1 || str.indexOf('仟')>-1){
//取得千之前的汉字
len = str.indexOf('千')>-1?str.indexOf('千'):str.indexOf('仟');
num = Number(chnNumChar[str.substr(0,1)] * chnNumChar['千']) + Number(num);
if(str.indexOf('百')>-1 || str.indexOf('佰')>-1){
len = str.indexOf('百')>-1?str.indexOf('百'):str.indexOf('佰');
num = Number(chnNumChar[str.substr(len-1,1)] * chnNumChar['百']) + Number(num);
}
if(str.indexOf('十')>-1 || str.indexOf('拾')>-1){
len = str.indexOf('十')>-1?str.indexOf('十'):str.indexOf('拾');
num = Number(chnNumChar[str.substr(len-1,1)] * chnNumChar['十']) + Number(num);
}
if(str.length > len+1){
num = Number(chnNumChar[str.substr(len+1,1)] * 1) + Number(num);
}
thousand = true;
}
//如果不是千,那么就从百开始判断
if( !thousand ){
if(str.indexOf('百')>-1 || str.indexOf('佰')>-1){
len = str.indexOf('百')>-1?str.indexOf('百'):str.indexOf('佰');
num = Number(chnNumChar[str.substr(len-1,1)] * chnNumChar['百']) + Number(num);
if(str.indexOf('十')>-1 || str.indexOf('拾')>-1){
len = str.indexOf('十')>-1?str.indexOf('十'):str.indexOf('拾');
num = Number(chnNumChar[str.substr(len-1,1)] * chnNumChar['十']) + Number(num);
}
if(str.length > len+1){
num = Number(chnNumChar[str.substr(len+1,1)] * 1) + Number(num);
}
hundred = true;
}
}
//如果不是百,那么就从十开始判断
if(!thousand && !hundred){
if(str.indexOf('十')>-1 || str.indexOf('拾')>-1){
len = str.indexOf('十')>-1?str.indexOf('十'):str.indexOf('拾');
if(len==0){
num = '10';
}else{
num = Number(chnNumChar[str.substr(len-1,1)] * chnNumChar['十']) + Number(num);
}
if(str.length > len+1){
num = Number(chnNumChar[str.substr(len+1,1)] * 1) + Number(num);
}
ten = true;
}
}
if(!thousand && !hundred && !ten){
num = (Number(chnNumChar[str]) * 1) + Number(num);
}
return num;
}
阅读全文
0 0
- javascript汉字换数字
- javascript 验证汉字和数字
- javascript数字转汉字中文数字
- javascript 小写数字转换为汉字大写数字
- 一个数字金额转变成汉字大写金额的javascript脚本
- Javascript 数字金额 转换为 大写汉字金额
- 汉字装换为拼音
- 数字换位置(2)
- JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合
- 人民币数字转汉字
- 汉字,英文,数字 验证
- ALT+数字输入汉字
- 数字转大写汉字
- 汉字数字混合排序
- 数字转换汉字大写
- 数字、字母、汉字随机数。。。
- java 数字转汉字
- 汉字代表哪些数字?
- linux下的CPU、内存、IO、网络的压力测试工具与方法
- Ehcache缓存技术
- 判断是否联网
- Win10安装Redis服务报错
- malloc内存分配
- javascript汉字换数字
- 【python】Django项目的创建示例
- http://write.blog.csdn.net/postedit
- poj-2182-Lost Cows (树状数组,线段树)
- 《leetcode》best-time-to-buy-and-sell-stock-i-ii-iii
- C/C++中的关键字
- 递归的函数
- JAVA中MAP的四种类型区别和常见的简单用法
- attention and debug