Вычисление, замените точку запятой

У меня есть форма заказа, на которой я использую плагин вычисления jQuery для суммирования итогов.

Это суммирование отлично работает, но есть проблема с созданной "суммой". В сумме я хочу заменить любую точку запятой.

В основе кода лежит:

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

Использование .replace() непосредственно в переменной var не работает (ссылка на функцию недоступна на объекте). Я также пробовал это (но без эффекта);

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

Как я новичок в jQuery, я сейчас сильно застрял, может ли кто-нибудь указать мне в правильном направлении?

Ответы

Ответ 1

Ваша линия замены почти верна. Вам нужно использовать регулярное выражение с опцией g, которая говорит, чтобы заменить все экземпляры, а не только первые. У вас также есть порядок обмена (сначала это то, что найти, во-вторых, что заменить его).

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

Обратите внимание на \ до .: . имеет особое значение в RegExp, поэтому его нужно экранировать.

Ответ 2

Если Sum был числом, это будет работать.

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

Можете ли вы запустить typeof (sum) и сообщить нам, что такое выход.

Также, если вы можете установить проект в jsfiddle.com, это было бы здорово.

Ответ 3

Ваша проблема заключается в том, что ваша функция replace должна читать replace('.', ',') не наоборот (у вас был replace(',', '.')). Обратите внимание: первый аргумент - это то, что вы ищете, а второй аргумент - то, что вы хотите там вместо. Вы заменяли все запятые на периоды. Regex здесь не нужно.