Вопрос

Я работаю над простой задачей на вычитание, но, к сожалению, она продолжает возвращаться NaN

Вот функция

   function subtraction(a, b) {
        var regexp = /[$][,]/g;

        a = a.replace(regexp, "");
        b = b.replace(regexp, "");


        var _a = parseFloat(a);
        var _b = parseFloat(b);

        return _a - _b;
     }

И вот как я это называю.

txtGoodWill.value = subtraction(txtSellingPrice.value, txtBalanceSheet.value);

Числа, которые передаются в функцию, являются ТОЛЬКО валютой (IE: $2,000 или $20, и т. д)

Теперь я знаю, что не могу вычитать числа с помощью $ или ,, но я не могу хоть убей понять, почему они оцениваются в уравнении.

Это было полезно?

Решение

Ваше регулярное выражение соответствует только в том случае, если $ за ним непосредственно следует ,.Использовать /[$,]/g вместо этого, чтобы сопоставить все вхождения любого из двух символов.

Другие советы

Я думаю, ты хочешь var regexp = /[$,]/g; (оба $ и , внутри того же набора квадратных скобок).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top