вообщем думаю, что номера кредитных карт хранить только в строковом значении.
А вот такой максимум для вычисления прибыли думаю достаточно
var numberStr = " 1 999 999 999 999 999 ";
вряд ли у кого есть потребность вычислять такие суммы.
Больше не получиться, так как при преобразовании
уже видна погрешность
/*выбираем из строки только числа,
* перед тем как вернуть в точку вызова результат,
* проверяем, что результат - имеет тип данных number;
* parseInt() - преобразование строки в число;
* num - число*/
function parseStrAndConverseToNumber(str) {
var strDigitsOnly = str.toString().replace(/\D+/g, '');
var num = parseInt(strDigitsOnly);
if (typeof(num) === "number") {
return num;
} else {
throw new TypeError("This is not number!");
}
}