Проблема с вычитанием JavaScript
-
21-09-2019 - |
Вопрос
Я работаю над простой задачей на вычитание, но, к сожалению, она продолжает возвращаться 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;
(оба $
и ,
внутри того же набора квадратных скобок).
Не связан с StackOverflow