Расчет, заменить точку запятой - PullRequest
15 голосов
/ 14 марта 2011

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

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

Основа кода:

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

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

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

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

Ответы [ 3 ]

33 голосов
/ 14 марта 2011

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

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

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

1 голос
/ 14 марта 2011

Если бы Сумма была числом, это бы сработало.

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

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

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

0 голосов
/ 14 марта 2011

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

...