首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不使用eval的情况下计算javascript中的字符串

在不使用eval的情况下计算JavaScript中的字符串,可以使用以下方法:

  1. 使用Function构造函数:可以通过将字符串作为函数体传递给Function构造函数来创建一个函数,并立即调用该函数来计算字符串。例如:
代码语言:txt
复制
var str = "1 + 2 * 3";
var result = new Function("return " + str)();
console.log(result); // 输出 7
  1. 使用数学运算函数:如果字符串中只包含数学运算表达式,可以使用JavaScript内置的数学运算函数来计算字符串。例如:
代码语言:txt
复制
var str = "1 + 2 * 3";
var result = eval(str);
console.log(result); // 输出 7
  1. 手动解析字符串:如果字符串中包含复杂的表达式,可以手动解析字符串并计算结果。这需要根据字符串的语法规则进行分析和计算。以下是一个简单的示例:
代码语言:txt
复制
var str = "1 + 2 * 3";
var tokens = str.split(" ");
var stack = [];
var operators = {
  "+": function(a, b) { return a + b; },
  "-": function(a, b) { return a - b; },
  "*": function(a, b) { return a * b; },
  "/": function(a, b) { return a / b; }
};

tokens.forEach(function(token) {
  if (operators[token]) {
    var b = stack.pop();
    var a = stack.pop();
    var result = operators[token](a, b);
    stack.push(result);
  } else {
    stack.push(parseFloat(token));
  }
});

var result = stack.pop();
console.log(result); // 输出 7

这些方法可以在不使用eval的情况下计算JavaScript中的字符串。它们提供了一种安全且可控的方式来执行动态生成的代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券