【问题标题】:Javascript or JQuery how to replace all '+' in a stringJavascript或JQuery如何替换字符串中的所有'+'
【发布时间】:2016-05-27 11:16:27
【问题描述】:

现在我有一个存储字符串的变量。

var value = "66+88";

如何用标准 + 运算符替换 '+' 以便进行评估

66 + 88 = 154

谢谢

【问题讨论】:

  • 你能展示你的尝试吗?

标签: javascript jquery string numbers


【解决方案1】:

使用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);

【讨论】:

    【解决方案2】:

    您可以为此使用eval

    var value = eval("66+88");
    

    但是你需要小心,特别是如果这个字符串来自用户。

    此函数会将输入字符串评估为 JavaScript,并且可能会损坏您的其他脚本或可用于黑客攻击。

    风险自负!

    【讨论】:

    • 你可以,但是 OP 提出问题的方式并没有让我相信他们会理解这种方式的危险。
    • @CherryDT eval 有什么危险?
    • 它可以执行任意JavaScript。根据 OP 首先从何处获取此字符串,这可能会导致意外行为或更严重的 XSS 问题。
    【解决方案3】:

    使用String#replace

    var value = "66+88";
    var result = value.replace(/^(\d+)\+(\d+)$/, function(x, y, z){
                 return parseInt(y) + parseInt(z) })
    console.log(result);

    【讨论】:

      【解决方案4】:

      你可以使用 split() 方法来分割字符串。

      var value = "66+88";
      var no = value.split('+');
      console.log(parseInt(no[0]) + parseInt(no[1]));
      

      split() 方法将返回一个数组。在这种情况下

      没有 = ['66','88']

      parseInt() 将字符串转换为 Int 并且您可以计算总和。

      谢谢!

      【讨论】:

        【解决方案5】:

        您可以使用splitreduce 来总结您的字符串。

        这是一个例子。

        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));

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-16
          • 2022-01-19
          相关资源
          最近更新 更多