Вычисление, замените точку запятой
У меня есть форма заказа, на которой я использую плагин вычисления 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 здесь не нужно.