2011-03-13 127 views
14

我有一個訂單,我使用jQuery Calculation Plugin來總計總計。計算,用逗號替換點

這個總結工作正常,但產生的'總和'有問題。總之,我希望用逗號替換任何點。

該代碼的基礎是;

function ($this) { 
    var sum = $this.sum(); 
    $("#totaal").html("€ " + sum2); 
} 

直接在var sum上使用.replace()不起作用(引用的函數在對象上不可用)。我也試過這個(但沒有效果);

var sum2 = sum.toString().replace(',', '.'); 

由於我是jQuery的新手,我現在幾乎陷入困境,任何人都可以指向正確的方向嗎?

回答

31

您的替換線幾乎是正確的。您需要使用g選項的正則表達式,該選項表示替換所有實例而不是第一個。您也可以交換訂單(首先是要找到的內容,其次是要替換的內容)。

var sum2 = sum.toString().replace(/\./g, ','); 

注意\..在一個RegExp一個特殊的意義,所以它必須被轉義。

+0

好點,我已經添加了我的答案+1 – Jason 2011-03-13 23:36:02

+0

哇,感謝您的快速答覆。上面的線完美地工作! – YDL 2011-03-13 23:47:07

1

如果總和是一個數字,那麼這將工作。

var sum_formatted = String(sum).replace(/\./g,','); 

你可以運行typeof(sum)並告訴我們輸出是什麼。

此外,如果你可以在jsfiddle.com中設置項目,那將是很棒的。

+0

typeof(sum)返回「Number」。然而,上面的這條線似乎並不奏效(它並不代替這個點)。 – YDL 2011-03-13 23:47:53

+0

由於參數的順序仍然不正確,因此不起作用。 – nzifnab 2011-03-14 00:19:02

+0

我實際上認爲YDL想把逗號改成點。無論如何,我已經改變了它 – Jason 2011-03-14 06:08:33

0

你的問題是你的替換函數應該是replace('.', ',')而不是其他方式(你有replace(',', '.')),注意第一個參數是你要找的,第二個參數是你想要的。你正在用句點替換所有逗號。正則表達式在這裏是不必要的。