千元分隔符js 寫法

可能不太精緻 代碼不夠優化,數組

function thousand(text){
      //將傳過來的數據轉換成字符串
      var str=text.toString();
      
      //判斷是否存在$或者¥符號 後綴是不是'0.00'
      var prefix=/\¥/g.test(str)?'¥':(/\$/g.test(str)?'$':'');
      var postfix=/\¥|\$/g.test(str)?'.00':'';
      
      //消除'.'  由於有些值好比 $10.00
      if(str.indexOf(".")!=-1){
         var result=/\./g.exec(str);
         var result2=str.substr(0,result['index']);//獲取小數點前的全部值
        }else{
          var result2=str;
        }
        
        //將非數字剔除
        var num=result2.replace(/[\D*]/g,'');
        
        //將字符串換成數組 下面能夠使用splice函數
        var arr=num.split('');
        
        //獲取有多少個分割點
        var dot_num=Math.ceil(arr.length/3)-1;
        if(dot_num<0){//若是數字的值大小根本達不到上千  就直接返回
          return str;
        }
        

        for(var i=1,j=0;i<=dot_num;i++,j++){
            //給數組添加上分割點','
           arr.splice((arr.length-3*i-j),0,',');
        }
        
        //返回數字  若是傳過來的數字有¥或者有$或者有‘.00’就返回相應的數值
        return prefix+arr.join('')+postfix; 
}
相關文章
相關標籤/搜索