无论格式如何,对数字求和正确
Sum numbers right, no matter the format
我有这个函数,它总和的正则表达式结果:
'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 格式时才有效。我希望它接受所有格式。可能吗?没有任何库可以提供帮助?
谢谢。
尝试使用删除.replace(/'./g, '')
,包括+
运算符,在prev
之前转换为prev
字符串到Number
'use strict';
function sum(string) {
var match, result, pattern;
pattern = /('d+'.'d+)|('d+,'d+)|('d+)/g;
match = string.match(pattern);
if (!match.length) {
return 'Didn''t find any trace.';
}
result = match.reduce(function(prev, curr) {
curr = curr.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
相关文章:
- 如何使用jquery对货币格式的数字求和
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- 如何使用javascript对每个表的所有数字求和
- JavaScript对数组中的数字求和
- 无论格式如何,对数字求和正确
- 对正则表达式产生的所有类型的数字求和
- 角度 - 使用函数对数字求和并将其放入视图中
- 用 js 对每行的数字求和
- 求和用户定义的数字
- 试图创建一个对数字求和的Javascript函数
- 在ionic cordova (angularjs)中动态地向屏幕添加输入字段,并对它们的(数字)内容求和
- 在Javascript中,使用for循环对数组中的数字求和
- 在循环时从localStorage中求和数字值
- Javascript按两个数字序列对数组中的数字求和
- 对模板中的数字求和
- 用于求和的字符串到数字
- Javascript不会对数字求和
- 对数字求和并显示它们
- 如何用javascript求和多个(未定义的数字)文本框的数量
- 使用求和方程JAVASCRIPT将它们转换为数字的单词块