2012-02-26 141 views
0

在我的代碼中,我有一個變量myCash,它使用javaScript的innerHTML打印到h1元素中。我在網上找到了一個函數,它在數字結尾處的每個第三個字符後面加一個逗號,以便數字更容易閱讀。我已經嘗試了幾個小時,現在將變量myCash發送到函數中,然後將其打印在屏幕上。我無法讓它工作。在每三個數字字符中添加一個逗號

我試過在頁面加載或按下按鈕時向屏幕提醒新變量,但我什麼也沒有得到,警報甚至不起作用。這裏是逗號插入功能:

var newMyCash = commaFormatted(myCash); alert(newMyCash);

這:

alert(commaFormatted(myCash);

function commaFormatted(amount) { 
    var delimiter = ","; // replace comma if desired 
    amount = new String(amount); 
    var a = amount.split('.',2) 
    var d = a[1]; 
    var i = parseInt(a[0]); 
    if(isNaN(i)) { return ''; } 
    var minus = ''; 
    if(i < 0) { minus = '-'; } 
    i = Math.abs(i); 
    var n = new String(i); 
    var a = []; 
    while(n.length > 3) 
    { 
     var nn = n.substr(n.length-3); 
     a.unshift(nn); 
     n = n.substr(0,n.length-3); 
    } 
    if(n.length > 0) { a.unshift(n); } 
    n = a.join(delimiter); 
    if(d.length < 1) { amount = n; } 
    else { amount = n + '.' + d; } 
    amount = minus + amount; 
    return amount; 
} 
現在當我想我的變量改變我已經試過了幾個不同的方法,包括這

哪裏當然myCash等於一些大數目;

這絕對沒有!我在這裏做錯了什麼?

+0

你可以把它張貼在jsFiddle上嗎? – MyStream 2012-02-26 21:53:01

+0

什麼是'myCash'變量?例如4800.00或「480000」等? – shaunsantacruz 2012-02-26 21:59:16

回答

0

這不是我的功能,但我希望它可以幫助你。

function addCommas(nStr) 
{ 
    nStr += ''; 
    x = nStr.split('.'); 
    x1 = x[0]; 
    x2 = x.length > 1 ? '.' + x[1] : ''; 
    var rgx = /(\d+)(\d{3})/; 
    while (rgx.test(x1)) { 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
    } 
    return x1 + x2; 
} 

用法:

var newMyCash = addCommas(myCash); alert(newMyCash); 

來源:http://www.mredkj.com/javascript/nfbasic.html

+0

謝謝!我不知道爲什麼我的另一個不工作。 – 2012-02-26 22:36:09

0

您很可能不會傳入一個包含小數的數字,該函數需要這樣做。

工作Demo

相關問題