Расчет, заменить точку запятой

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

Другие вопросы по тегам