zoukankan      html  css  js  c++  java
  • 123输出一百二十三的小案例

    这个也是在脚本之家看到的,感觉挺有意思的;记录一下

    //将130转换成一百三十
    
    var num = 130;
    
    function fn(num) {
        //首先判断是不是数字
        if (!/d+/.test(num)) {
            return '不是数字'
        }
        //中文格式的显示规则;
        var gs = "千百十亿千百十万千百十个"
            //判断数字的长度
        var len = num.toString().length;
        if (len > gs.length) {
            return "数字长度超出范围"
        }
        var res = '';
        var num = num.toString();
        //根据长度截取对应的格式
        var resgs = gs.substr(gs.length - len);
        for (var i = 0; i < len; i++) {
            //console.log(num[i], "len")
            res += '零一二三四五六七八九'.charAt(num[i]) + resgs.charAt(i)
        }
        //去掉末尾的个字
        res = res.substring(0, res.length - 1)
            //考虑特殊情况的比如;零千零万零百替换成零
            //多个零存在只保留一个零
            //零万零亿保留单位万亿
        res = res.replace(/零([十|百|千])/g, "").replace(/零+/g, '').replace(/零([万|亿])/g, "$1")
        console.log(res, "len")
    }
    fn(100000002)

    其实这个案例还是有很多问题的,有些情况不能准确转换

    希望看到的大神,帮我斧正,感激不尽

  • 相关阅读:
    服务器模型??
    tcp和udp详解??
    osi七层模型??
    高内聚 低耦合??
    进程和线程的区别和联系??
    2019.10.03题解
    2019.10.02题解
    2019.09.29考试报告
    2019.09.27考试报告
    2019.09.26考试报告
  • 原文地址:https://www.cnblogs.com/liliy-w/p/10108771.html
Copyright © 2011-2022 走看看