javaScript 实现小写转大写

来源:互联网 发布:拼音发音软件下载 编辑:程序博客网 时间:2024/06/08 07:08
<script type="text/javascript">
   var number = [ '零','壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' ];
   var bit = [ '拾', '佰', '仟', '万', '亿' ];

    function chenge(obj){
        var val = obj.value.replace(/\D/g, '');
        var result = '';
        var flag = false;
        if (val.length == 1) {
            if (val == '0') {
                result = number[0];
            } else {
                var nvm = parseInt(val);
                result = number[nvm];
            }
        }else{
           var leng = val.length;
           for(var i = 0;i<leng;i++){
             //从尾部开始截取,个、十、百、千......
             var temp = val.substring(leng-i-1,leng-i);
             var nvm = parseInt(temp);
             if(nvm == 0 && i == 0){ //第一位为0,不做处理
               
             }else if(nvm == 0 && !flag){//遇见第一个0,将标记设成true
               flag = true;
               
             }else if(nvm == 0 && flag){//遇见连续的非第一个0,不做任何处理
                
             }else if(nvm != 0 && flag){//当0结束时
               flag = false;
               var c = parseInt(i/4); //计算万、亿
               if(c == 0){
                 result = number[0]+result;   //拼接零
                 result = bit[i-1]+result;   //拼接位
                 result = number[nvm]+result; //拼接数字
               }else{
                 var t = i-(c*4);  //计算是十、百、千、十万、百万、千万
                 if(t==0){
                     result = number[0]+result;   //拼接零
                     result = bit[c+2]+result;   //拼接位
                     result = number[nvm]+result; //拼接数字
                 }else{
                     result = number[0]+result;   //拼接零
                     if(result.indexOf(bit[c+2])>0){ //判断是否已经拼接位
                    
                     }else{
                        result = bit[c+2]+result;   //拼接位,万亿
                     }
                     result = bit[t-1]+result;   //拼接位,十百千
                     result = number[nvm]+result; //拼接数字
                 }
               }
               
             }else if(nvm != 0 && !flag){
               var c = parseInt(i/4); //计算万、亿
               if(c == 0){
                 if(i>0){
                  result = bit[i-1]+result;   //拼接位
                 }
                 result = number[nvm]+result; //拼接数字                
               }else{
                 var t = i-(c*4);  //计算是十、百、千、十万、百万、千万
                 if(t==0){
                     result = bit[c+2]+result;   //拼接位
                     result = number[nvm]+result; //拼接数字
                 }else{
                     result = bit[t-1]+result;   //拼接位,十百千
                     result = number[nvm]+result; //拼接数字
                 }
               }
              
             }
           }
        }
        //获取最后一位
        var lastNumber = result.substring(result.length-1,result.length);
        //如果最后一位是零,则去掉
        if(lastNumber == number[0]){
          result = result.substring(0,result.length-1);
        }
        
        //获取前两位
        var firstNumber = result.substring(0,2);
        //将首个壹拾转换成拾,方便人的阅读
        if(firstNumber == '壹拾'){
           result = result.substring(1,result.length);
        }
        
        
        document.getElementById('upper').value = result;
        document.getElementById('aaa').innerHTML = result;
    }
0 0