【发布时间】:2016-05-27 11:16:27
【问题描述】:
现在我有一个存储字符串的变量。
var value = "66+88";
如何用标准 + 运算符替换 '+' 以便进行评估
66 + 88 = 154
谢谢
【问题讨论】:
-
你能展示你的尝试吗?
标签: javascript jquery string numbers
现在我有一个存储字符串的变量。
var value = "66+88";
如何用标准 + 运算符替换 '+' 以便进行评估
66 + 88 = 154
谢谢
【问题讨论】:
标签: javascript jquery string numbers
使用String#split, Array#map 得到Number 然后Array#reduce
var value = "66+88";
var result = value.split('+').map(Number).reduce(function(a, b) {
return a + b;
}, 0);
console.log(result);
【讨论】:
您可以为此使用eval:
var value = eval("66+88");
但是你需要小心,特别是如果这个字符串来自用户。
此函数会将输入字符串评估为 JavaScript,并且可能会损坏您的其他脚本或可用于黑客攻击。
风险自负!
【讨论】:
eval 有什么危险?
使用String#replace
var value = "66+88";
var result = value.replace(/^(\d+)\+(\d+)$/, function(x, y, z){
return parseInt(y) + parseInt(z) })
console.log(result);
【讨论】:
你可以使用 split() 方法来分割字符串。
var value = "66+88";
var no = value.split('+');
console.log(parseInt(no[0]) + parseInt(no[1]));
split() 方法将返回一个数组。在这种情况下
没有 = ['66','88']
parseInt() 将字符串转换为 Int 并且您可以计算总和。
谢谢!
【讨论】:
您可以使用split 和reduce 来总结您的字符串。
这是一个例子。
var value1 = "66+88";
var value2 = "66+88+44";
function sumUpStr (strToSum) {
var sum = strToSum.split("+").reduce(function(prev, next) {
return +prev + +next;
});
return sum;
};
console.log("Sum of value1 is: " + sumUpStr(value1));
console.log("Sum of value2 is: " + sumUpStr(value2));
console.log("Sum of value1 + value2 is: " + sumUpStr(value1 + "+" + value2));
【讨论】: