2011-03-13 102 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(',', '.')),注意第一个参数是你要找的,第二个参数是你想要的。你正在用句点替换所有逗号。正则表达式在这里是不必要的。