可能不太精緻 代碼不夠優化,數組
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; }