使用javascript数学系统简化输入内容

使用javascript数学系统简化输入内容,javascript,html,math,Javascript,Html,Math,这显然非常有效:警报(5*8-4) 但我需要解决输入框中的任何问题 下面是我想做的:我将把输入的值输入到一个变量中。那我就用 document.write("<script>alert("+theinputvalue+")<script>"); document.write(“警报(“+theinputvalue+”)); 或者这样做: var string="<script>alert("+theinputvalue+")<script>";

这显然非常有效:
警报(5*8-4)

但我需要解决输入框中的任何问题

下面是我想做的:我将把输入的值输入到一个变量中。那我就用

document.write("<script>alert("+theinputvalue+")<script>");
document.write(“警报(“+theinputvalue+”));
或者这样做:

var string="<script>alert("+theinputvalue+")<script>";document.write(string);
var string=“警报(+theinputvalue+”);document.write(字符串);
但什么都不管用

甚至有可能做到这一点吗?如果没有,请告诉我可以使用的其他简单系统

最后,我将使用它绘制如下线条:

var canvas = document.getElementById("canvas"),
    ctx = canvas.getContext("2d")
for(var x=-100; x<100; x=x+.2){
    y = .1*(x*x)
    ctx.fillRect(x+50, -1*y+50, 2, 2);
}
var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”)

对于(var x=-100;x我不知道有任何库正在这样做(这并不意味着没有这样的库,这只是意味着我从未真正需要过)但你最终应该做的是构建一个自动机,它将解析输入字符串,并通过适当的转换将其转换为适当的图形。这不是一个很容易的主题,如果你想走这条路,你应该开始阅读算术表达式解析算法(对不起,我没有任何解决方案)

或者,您可以作弊并定义用户将选择的方程类型。一旦用户选择了方程类型,您应该能够显示用户输入,用户可以在其中选择系数。您可以将这些系数读入不同的变量,并在绘制过程中应用变换(例如,如果用户将选择sin(x)类型)您知道,一般方程有以下公式:y=k*sin(a*x+b)+c。因此,一旦选择了它,您就可以允许用户输入k、a、b、c,并根据该输入为图形计算点的适当位置。)

好的,第三种解决方案可能涉及“eval”,但通常您应该不惜任何代价避免eval(B/c这是直接的JavaScript注入,在这种情况下可能是可以的,但在以后的生活中可能会给您带来麻烦)

将产生36个可供使用的表达式,它附带高级表达式解析器。它支持变量和函数的定义

// create an instance of math.js
var math = mathjs();

// evaluate an expression
math.eval('5*8-4'); // 36

// user defined function (returns a native JavaScript function)
var f = math.eval('f(x) = 2*x^2 + 6');

// use the function (for graphing or something) 
f(2); // 14

您是否试图指定整个等式(类似于“y=2x^2+6”)在输入中或只是一些系数中?是的,这就是我正在做的。尝试使用包含x和其他所有内容的输入来解决JS解析器生成器Jison的演示是一个计算器。可能值得一看,但是清除用户输入应该始终是一个优先事项。我使用了eval(),发现简单多了。我并不需要这么复杂的东西,但是谢谢,我仔细研究了一下,它看起来很好。我使用了eval(),发现简单多了。我不需要这么复杂的东西,但是谢谢,我仔细研究了一下,它看起来很好
// create an instance of math.js
var math = mathjs();

// evaluate an expression
math.eval('5*8-4'); // 36

// user defined function (returns a native JavaScript function)
var f = math.eval('f(x) = 2*x^2 + 6');

// use the function (for graphing or something) 
f(2); // 14