Javascript 将字符串转换为整数并计算

Javascript 将字符串转换为整数并计算,javascript,html,Javascript,Html,我正在制作一个计算器,它的工作原理如下: 用户将把他的计算放在文本框中,例如:2+4+5;然后整个字符串将转换为整数,计算数字并显示结果:11;。 我的代码如下: 脚本: function solve() { problem = parseInt(document.getElementById('prob')); ans = document.getElementById('ansspace'); ans.innerHTML = problem }

我正在制作一个计算器,它的工作原理如下:
用户将把他的计算放在文本框中,例如:2+4+5;然后整个字符串将转换为整数,计算数字并显示结果:11;。 我的代码如下:

脚本:

function solve() {  
    problem = parseInt(document.getElementById('prob'));   
    ans = document.getElementById('ansspace');  
    ans.innerHTML = problem  
}  
HTML:

<input type="text" id="prob">  
<br>  <input type="button" id="add" value="Add" onclick="solve()">  <br>  
<p id='ansspace'></p>




您可以使用
eval()
进行计算,但要注意安全问题<不建议使用代码>评估,因为用户可以从页面执行代码。否则,使用regex解析内容或使用regex验证输入值是否可以安全地与eval一起使用

您可以使用
eval()
进行计算,但要注意安全问题<不建议使用代码>评估,因为用户可以从页面执行代码。否则,使用regex解析内容或使用regex验证输入值是否可以安全地与eval一起使用确实没有简单的方法制作计算器,但要使代码正常工作,您可以使用eval

function solve() {  
  var problem = document.getElementById('prob').value;   
  var ans = document.getElementById('ansspace');   
  ans.innerHTML = eval(problem);  
}  

制作计算器确实不容易,但要使代码正常工作,您可以使用
eval

function solve() {  
  var problem = document.getElementById('prob').value;   
  var ans = document.getElementById('ansspace');   
  ans.innerHTML = eval(problem);  
}  

使用jQuery非常简单,如下所示:

$('#add').on('click', function() {
    var solution = eval($('#prob').val());
    $('#ansspace').html(solution);
});​​​​​

使用jQuery查看一个活生生的示例,如下所示:

$('#add').on('click', function() {
    var solution = eval($('#prob').val());
    $('#ansspace').html(solution);
});​​​​​

看一个活生生的例子

你的问题是什么?如果是关于如何计算字符串,.brake your,
eval
答案就来了。你的问题是什么?如果是关于如何计算字符串,.brake yourself,
eval
答案就来了。在这种情况下,代码注入不是问题,因为用户也可以通过在地址栏中运行
javascript:
url,使用浏览器的开发工具等来实现,只要他不能共享到计算的链接(即让其他用户执行他输入的任何内容)这不是什么大问题。使用
try..catch
进行正确的错误处理就可以了。在这种情况下,代码注入不是问题,因为用户也可以通过在地址栏中运行
javascript:
url,使用浏览器的开发工具等来实现。只要他不能共享到计算的链接(即,让其他用户执行他输入的任何内容)这不是一个大问题。使用
try..catch
来进行适当的错误处理就可以了。虽然我非常支持jQuery,而你确实回答了这个问题,但我认为没有必要重写他的代码来使用jQuery。顺便说一句,
.on('click')
是自jQuery 1.7以来的首选方式。感谢您的提醒!我不知道标准已经更改:)谢谢你的回答,但我不想使用jquery,我也不知道它的任何编程,你能用JavaScription给出答案吗?虽然我非常支持jquery,但你确实回答了这个问题,我认为没有必要重写他的代码来使用jquery是自jQuery 1.7以来的首选方式。谢谢提醒!我不知道标准已经改变:)谢谢你的回答,但我不想使用jQuery,我不知道它的任何编程,你能用Javascript给出答案吗请不要创建不必要的全局变量。用于使变量成为局部变量。请不要创建不必要的全局变量。用于使变量成为局部变量。