Js实现金额转换为中文繁体

转载自:https://www.zuojl.com/convert-menoy-chinese-use-js/

叙述

在工作中经常会遇到需要将金额转换成繁体数组进行展示的情况,这个转换的过程可以后台进行也可以在前端进行。
本文使用 JavaScript 将金额数字转换成中文繁体,废话不多说直接上代码:

解决方案

/**
 * 将给定的金额数值转换为中文繁体的方法,
 *  最大值为'兆'的的数值,不为负数
 * @author zuojl
 * @version 2016.05.04 v1.0
 * @param money 传入的金额数值
 * @return result 当返回的不是'ERROR'时,
 *  返回的是转换后的金额中文值
 */
var _moneyToChinese = function(money){
    //判断是否为数字,不是返回'ERROR'
    var pattern = /^\d+(.\d{1,2})?$/;
    //匹配0,小数,负数:/^(0|-?[1-9][0-9]*)(.[0-9]{1,2})?$/
    //匹配100,100的格式:/^(0|((-?[1-9][0-9]{1,2})(,[0-9]{3})*|(0|-?[1-9][0-9]*))(.[0-9]{1,2})?)$/
    if(money == '' || !pattern.test(money)){
        return 'ERROR!';
    }
    money += '';
    var s1 = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');//存储数值部分
    var s2 = new Array('分', '角', '圆', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万', '亿', '兆');//存储单位部分
    //将money字符串转化为分
    var str;//用来存储转化为分的字符串
    var result = '';//用来存储
    var index = money.lastIndexOf(".");
    if(index != -1){
        var temp = money.substring(index + 1);
        var len = temp.length;
        if(len > 2){
            len = 2;
            temp = temp.substring(0, 2);
        }
        for(var i = 0; i < 2 - len; i++){
            temp += '0';
        }
        str = money.substring(0, index) + temp;
    } else {
        str = money + '00';
    }
    /*
     * 将分的每一位数字取出
     * 将其与数值和单位部分进行匹配
     * 组合成转换后的金额
     */
    for (i = 0; i < str.length; i++) {
        var n = str.charAt(str.length - 1 - i);
        result = s1[n] + "" + s2[i] + result;
    }
    /*
     * 通过正则优化
     */
    //优化有零的
    result = result.replace(/零分/g, "零");
    result = result.replace(/零角/g, "零");
    result = result.replace(/零圆/g, "零");
    result = result.replace(/零拾/g, "零");
    result = result.replace(/零佰/g, "零");
    result = result.replace(/零仟/g, "零");
    result = result.replace(/零万/g, "零");
    result = result.replace(/零亿/g, "零");
    //优化多个相连的零
    result = result.replace(/零零/g, "零");
    //优化以零结尾的
    result = result.replace(/零$/, "");
    //优化整元
    result = result.replace(/圆$/, "圆整");
    result = result.replace(/零圆$/, "零圆整");
    return result;
};

实现的代码也是非常的简单,将数字数组中的每个字符替换成汉族后,使用正则替换的方式进行优化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
模仿语言包式的简繁转换功能插件,轻松实现繁体和简体互换,很方便,只有一个JS文件。Std_StranJF.js文件只支持GB2312码,big52gb.js支持utf-8。   一、将繁简互换JS文件上传至空间:   如果您调用的是,则将繁简互换JS文件(Std_StranJF.Js)上传至网站的js目录中。当然您也可以上传至网站的其他何地方,如根目录下。如果上传在网站根目录下,则要将调用代码改成:   二、页面调用的方法:   在您的网站中请按以下方法添加以下的代码:   1. 在页面中加上以下链接:   繁体中文   这个是每个页面中显示进行简繁转换的链接,您可以放在页面顶部,如顶部的导航处。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝首页顶}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“{$ShowChannel} {$Rss}{$Wap}”,修改成“{$ShowChannel} |繁体中文|{$Rss}{$Wap}”即可。当然您也可以放在任何您想要放置的地方。   2. 在页面中放以下代码:      这个是每个页面中要调用繁体和简体互换的JS代码,您放在页面底部,如前面。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝网页底}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“”,修改成“”即可。当然您也可以放在任何您想要放置的地方。   小提示:您也可以不修改自定义标签,而是通过系统模板批量替换功能来添加以上的代码。但利用修改模板的自定义标签内容更方便。在修改了自定义标签后要记得更新您网站的缓存。若您开启了网站的生成功能,则在添加了代码后要生成全部相关的页面。   三、繁简互换JS文件参数的修改:   您可以进一步修改繁简互换JS文件(Std_StranJF.Js)以达到您想要的效果。请以记事本打开修改Std_StranJF.Js文件:   var Default_isFT = 0 //默认是否繁体,0-简体,1-繁体   var StranIt_Delay = 50 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来)   同时如果您的网站中有本文件中没有放入的繁体与简体互换的内容,则可以在本文件中进一步添加与扩充,以满足您的应用需求。   小提示:本插件同时可用于论坛等需要进行繁简互换的地方。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值