0
У меня есть эта функция, результаты регулярных выражений СГМ:номера Sum право, независимо от формата
'use strict';
function sum(string) {
var match, result, pattern;
pattern = /[\d,\.]+/g
match = string.match(pattern);
if (!match.length) {
return 'Didn\'t find any trace.';
}
result = match.reduce(function(prev, curr) {
curr = curr.replace(/\./g, '').replace(',', '.');
return prev + (+curr);
}, 0);
if (!isNaN(result)) {
return result;
} else {
return 'The sum fails.';
}
}
console.log(sum('156,02 10')); // expected: 166.02 = works
console.log(sum('10.10 10.10')); // expected: 20.20 = doesn't work, result = 2020
console.log(sum('01.10 2,30')); // expected: 3.40 = doesn't work, result = 112.3
И работает только тогда, когда у меня есть формат 152,02. Я бы хотел, чтобы он принимал все форматы. Является ли это возможным? Нет ли lib, чтобы помочь?
Спасибо.
Почему '2,30' быть преобразованы в' 2.30'? – guest271314
@ guest271314 Это проблема локали «вещь». В некоторых странах 2,30 фактически составляет 2,30. Цифры разделяются запятой – adelineu