gpt4 book ai didi

javascript - 不使用 eval( ) 从表单输入计算数据

转载 作者:行者123 更新时间:2023-12-03 09:45:55 25 4
gpt4 key购买 nike

上学年我高中毕业,现在是一家小型网络营销公司的实习生。我当前的任务是开发一个在线价格估算器,以便销售人员可以快速为我们的服务提供一致的估算。这是我的第一个 Javascript 项目。我之前在 js 中完成的最高级的事情就是一些小的、基本的 dom 操作任务。

我发现一个网站的估算器几乎与我需要的一样强大。所以我正在阅读他们的代码来弄清楚它是如何工作的,这样我就可以制作自己的版本。有人告诉我,对用户提交的数据使用 eval() 是不好的做法。所以,我想知道在这段代码中用什么替换 eval() 。

    frm = document.form1;

for (var i = 0; i < document.form1.elements.length; i++) {
if (frm.elements[i].type == 'checkbox' || frm.elements[i].type == 'radio') {
if (frm.elements[i].checked) {
v = eval("frm.val" + frm.elements[i].value);
mult = eval("frm.mult" + frm.elements[i].value);
mult = mult.value;
if (mult == '') {
mult = 1
} else {
mult = parseInt(mult)
}
hrs = hrs + parseInt(v.value) * mult;
var cur_val = frm.elements[i].title;
var make_rfp = cur_val.replace("___", mult);
document.getElementById('quote_des').value += make_rfp + "\n";
}
}
}

这是我从中提取此代码的网站:https://www.designquote.net/html/dq_estimate_wizard.cfm

最佳答案

Eval 是不好的做法,因为它执行纯 javascript,如果您允许用户在文本字段中键入任何 js 然后执行它,那么您就已经构建了跨站点脚本的邀请;-)它将允许您的用户更改您网站上的内容,甚至将一些经过处理的数据发送回您的服务器 - 如果您有服务器的话。

您正在寻找像 mathjs 这样的库,它将字符串解释为数学公式。您可以在这里找到更多相关信息 Evaluating a string as a mathematical expression in JavaScript

如果库不能满足您的需要,另一种选择是编写您自己的公式解析器,但这需要更多工作。

关于javascript - 不使用 eval( ) 从表单输入计算数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com