【发布时间】:2016-11-02 01:07:40
【问题描述】:
我创建了一个简单的输入框,用户可以在其中输入一个简单的方程式(无变量)
例如,用户会输入
(5+6) * 7 -2
当用户点击“计算”按钮时,它会触发 jQuery,该 jQuery 使用 .toString() 转换输入,进而求解方程,然后将值放入元素中。
我比较新,所以如果我犯了非常严重的错误,我深表歉意。我希望我已经正确解释了这一点。
这里是 HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Interview exercise</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<input name = "equation"/> = <span id="answer"/>
<br/>
<button>Calculate</button>
</body>
</html>
这里是 JavaScript/jQuery
$(document).ready(function() {
$('button').click(function() {
var answer = $("input[name=equation]").toString();
$('#answer') = answer;
});
});
【问题讨论】:
-
字符串不是数学运算。您必须解析字符串并基本上实现您自己的计算器。
-
为了您的理智,我建议您先学习 JavaScript,然后再使用 jQuery 并让 StackOverflow 握住您的手
-
.toString()将值转换为字符串。正如方法名称显然所说。要对多个输入执行数学计算,您必须分别捕获这些数字。然后执行你自己的某种计算......确保你处理整数或浮点数,而不是字符串。 -
@DanielA.White -
eval()对于这个特定目的不安全吗?它只会用于刚刚在当前会话中输入的值,该值不会存储在任何地方,也不会在其他用户的设备上进行评估。 (当然,实际上解析输入的字符串而不仅仅是evaling,如果用户输入了无效的内容,它将允许优雅的错误处理。) -
@DanielA.White - 他们可以通过浏览器的控制台做哪些他们无法做到的“任何事情”?再次注意,用户在这种情况下可以做的“任何事情”都不会影响其他用户。
标签: javascript jquery html tostring