Расчет, заменить точку запятой
У меня есть форма заказа, в которой я использую плагин JQuery для расчета итогов.
Это суммирование работает хорошо, но есть проблема с произведенной суммой. В сумме я хочу заменить любую точку запятой.
Основой кода является;
function ($this) {
var sum = $this.sum();
$("#totaal").html("€ " + sum2);
}
Использование.replace() непосредственно к var sum не работает (ссылочная функция недоступна для объекта). Я также попробовал это (но без эффекта);
var sum2 = sum.toString().replace(',', '.');
Поскольку я новичок в jQuery, я сейчас почти застрял, может кто-нибудь указать мне правильное направление?
3 ответа
Ваша линия замены почти правильная. Вы должны использовать регулярное выражение с g
вариант, который говорит, чтобы заменить все экземпляры, а не только первый. У вас также есть поменялся порядок (во-первых, что найти, во-вторых, что заменить его).
var sum2 = sum.toString().replace(/\./g, ',');
Обратите внимание \
перед .
: .
имеет особое значение в RegExp, поэтому его необходимо экранировать.
Если бы Сумма была числом, это работало бы.
var sum_formatted = String( sum ).replace(/\./g,',');
Можете ли вы запустить typeof(sum) и сказать нам, что вывод.
Также, если вы можете настроить проект в jsfiddle.com, это было бы здорово.
Ваша проблема в том, что ваша функция замены должна читать replace('.', ',')
не наоборот (у вас было replace(',', '.')
Обратите внимание, что первый аргумент - это то, что вы ищете, а второй аргумент - то, что вы хотите вместо этого. Вы заменяли все запятые точками. Регулярное выражение здесь не нужно.