Javascript 无论格式如何,正确地求和数字

Javascript 无论格式如何,正确地求和数字,javascript,regex,node.js,Javascript,Regex,Node.js,我有一个sum的正则表达式结果的函数: “严格使用”; 函数和(字符串){ var匹配、结果、模式; 模式=/[\d,\.]+/g 匹配=字符串。匹配(模式); 如果(!match.length){ return“未找到任何痕迹”; } 结果=匹配.reduce(函数(上、当前){ 当前=当前替换(/\./g',)。替换(',','); 返回上一个+(+当前); }, 0); 如果(!isNaN(结果)){ 返回结果; }否则{ 返回“总和失败”; } } 控制台日志(总和('156,02 1

我有一个sum的正则表达式结果的函数:

“严格使用”;
函数和(字符串){
var匹配、结果、模式;
模式=/[\d,\.]+/g
匹配=字符串。匹配(模式);
如果(!match.length){
return“未找到任何痕迹”;
}
结果=匹配.reduce(函数(上、当前){
当前=当前替换(/\./g',)。替换(',',');
返回上一个+(+当前);
}, 0);
如果(!isNaN(结果)){
返回结果;
}否则{
返回“总和失败”;
}
}
控制台日志(总和('156,02 10');//预期:166.02=工程
console.log(总和('10.10 10.10'));//预期:20.20=不起作用,结果=2020

console.log(总和('01.10 2,30'));//预期:3.40=不起作用,结果=112.3
尝试使用删除
。替换(/\./g',)
,包括
+
运算符在
prev
之前转换为
prev
字符串到
Number

“严格使用”;
函数和(字符串){
var匹配、结果、模式;
模式=/(\d+\。\d+)|(\d+,\d+)|(\d+)/g;
匹配=字符串。匹配(模式);
如果(!match.length){
return“未找到任何痕迹”;
}
结果=匹配.reduce(函数(上、当前){
当前=当前替换(',',');
返回值+上一个值+(+当前值);
}, 0);
如果(!isNaN(结果)){
返回结果;
}否则{
返回“总和失败”;
}
}
控制台日志(总和('156,02 10');//预期:166.02=工程
console.log(总和('10.10 10.10'));//预期:20.20=不起作用,结果=2020

console.log(总和('01.10 2,30'));//预期:3.40=不起作用,结果=112.3
为什么将
2,30
转换为
2.30
?@guest271314这是一个区域设置问题“东西”。在一些国家,2,30实际上是2.30。用逗号分隔的数字