web-dev-qa-db-ja.com

計算、ドットをコンマで置き換え

合計を合計するためにjQuery計算プラグインを使用する注文フォームがあります。

この合計は問題なく機能しますが、生成された「合計」に問題があります。まとめると、ドットをコンマに置き換えたいと思います。

コードの基礎は次のとおりです。

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

Var sumで.replace()を直接使用しても機能しません(参照された関数はオブジェクトでは使用できません)。私もこれを試しました(効果はありません)。

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

私はjQueryの初心者なので、今はかなり行き詰まっています。誰かが私を正しい方向に向けることができますか?

16
YDL

あなたの置換ラインはほぼ正しいです。 gオプションを指定して正規表現を使用する必要があります。これは、最初のインスタンスだけでなく、すべてのインスタンスを置き換えることを示しています。また、順序が入れ替わっています(1つ目は見つけるもの、2つ目はそれを置き換えるものです)。

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

\ の前に ..はRegExpで特別な意味を持つため、エスケープする必要があります。

35
Nathan Ostgard

Sumが数値の場合、これは機能します。

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

Typeof(sum)を実行して、出力を教えてください。

また、jsfiddle.comでプロジェクトを設定できると便利です。

1
Jason

あなたの問題は、あなたの置換関数が逆の方法ではなくreplace('.', ',')を読み取るべきであるということです(あなたはreplace(',', '.')を持っていました)、最初の引数が探しているものであり、2番目の引数が代わりにそこに欲しいものです。すべてのコンマをピリオドに置き換えていました。ここでの正規表現は不要です。

0
nzifnab