显示3+;4-2作为5使用jquery
我有一个显示3+;4-2作为5使用jquery,jquery,Jquery,我有一个输入字段,用户可以在其中编写类似3+4-2等等式。 使用jquery我可以像这样检索输入字段的值: var eqn = $("input").val(); math.eval('1.2 * (2 + 4.5)'); 变量eqn包含3+4-2,我必须将其显示为5(通过求解)而不是3+4-2。如何将方程式显示为结果? 等式可能包含符号+,-,*,/,.等 由于变量eqn是字符串类型,因此它显示为3+4-2。当我使用parseFloat时,它显示为3。所以这不能使用。使用eval编写代码
输入字段
,用户可以在其中编写类似3+4-2等等式。
使用jquery
我可以像这样检索输入字段的值:
var eqn = $("input").val();
math.eval('1.2 * (2 + 4.5)');
变量eqn
包含3+4-2,我必须将其显示为5(通过求解)而不是3+4-2。如何将方程式显示为结果?
等式可能包含符号+,-,*,/,.
等
由于变量eqn
是字符串类型
,因此它显示为3+4-2。当我使用parseFloat
时,它显示为3。所以这不能使用。使用eval编写代码
eval('3+4-2')我在相关问题上做了一些研究: javascript“eval”方法似乎有一个锁定版本,它向库中的用户公开数学功能,但不公开整个JSAPI。允许这样的陈述:
var eqn = $("input").val();
math.eval('1.2 * (2 + 4.5)');
重复@CarlosBribbiesCas,我要的是一个没有多大意义的jquery解决方案;jQuery是一个DOM操作库,它不能帮助您实现这一点。这将是一种非常不安全的处理用户输入的方法。这很容易破坏应用程序。幸运的是,客户端javascript很少能够访问可能造成任何实际伤害的文件系统、操作系统或其他应用程序,所有此类攻击都可以从浏览器控制台进行尝试。。。你至少应该调查一下这个函数是否可以防止它不应该被允许做的事情。这里最基本的关注点是你还可以用它做什么,因为你在评估javascript,而不仅仅是数学函数。试着输入这个。。。“警报(‘这是不安全的’)”2.1+3.2给出了5.30000000000000001,但预期是5.3他已经做到了,请参阅问题的第二条评论。关于浮点问题,请参见