美文网首页前端基础类学习
关于两道字符串处理的题

关于两道字符串处理的题

作者: 饥人谷_米弥轮 | 来源:发表于2017-07-05 18:14 被阅读18次

    1.将一串数字每三位用逗号分隔

      function formatNum(str){
        var newStr = "";
        var count = 0;
    
        if(str.indexOf(".")==-1){
            for(var i=str.length-1;i>=0;i--){
                if(count % 3 == 0 && count != 0){
                    newStr = str.charAt(i) + "," + newStr;
                }else{
                    newStr = str.charAt(i) + newStr;
                }
                    count++;
            }
            str = newStr + ".00"; //自动补小数点后两位
            console.log(str)
        }else{
            for(var i = str.indexOf(".")-1;i>=0;i--){// 4
                // console.log('newStr:',newStr)
                if(count % 3 == 0 && count != 0){
                    newStr = str.charAt(i) + "," + newStr;
                    // console.log('i:',i)
                    // console.log('str.charAt(i):',str.charAt(i))
                    // console.log('newStr:',newStr)
                    // console.log('newStr:',newStr)
                }else{
                    newStr = str.charAt(i) + newStr; //逐个字符相接起来
                }
                count++;
            }
            console.log('newStr:',newStr)
            console.log('str:',newStr +(str+'00'))
            console.log((str + "00").indexOf("."))
            str = newStr + (str + "00").substr((str + "00").indexOf("."),3);
            console.log(str)
        }
    }
    
    formatNum('13213.24'); //输出13,213.34
    formatNum('132134.2');  //输出132,134.20
    formatNum('132134');  //输出132,134.00
    formatNum('132134.236');  //输出132,134.23
    

    2.将一串数字每四位用空格分隔

    //方法1:
    function formatNum(str){
        var array1 = str.split(''),
            array2 = [];
    
        for(var i = 0; i < array1.length; i++){
            if(i != 0 && i % 4 === 0){
                array2.push(' ');
                array2.push(array1[i]);
            }else{
                array2.push(array1[i]);
            }
        }
    
        console.log(array2.join(''))
    }
    
    formatNum('132134484321882')
    
    //方法2:
    function formatNum(str){
        var array = str.split('');
        var count = 0;
    
        for(var i = 0; i <= array.length; i++){
            if(i != 0 && i == 4){
                array.splice(i,0,' ');
            }
            if(i > 4 && i % 4 == 0){
                count += 5;
                if(count != 5){
                    array.splice(count-1,0,' ');
                }
            }
        }
    
        console.log(array.join(''))
    }
    
    formatNum('132134484321882123143545412341231254642365768')

    相关文章

      网友评论

        本文标题:关于两道字符串处理的题

        本文链接:https://www.haomeiwen.com/subject/sciqhxtx.html