Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中使用插入符号作为指数_Javascript_Regex_Math - Fatal编程技术网

在Javascript中使用插入符号作为指数

在Javascript中使用插入符号作为指数,javascript,regex,math,Javascript,Regex,Math,我试图创建一个简单的图形计算器,用户在其中输入一个函数f,比如fx=x^2+2x+6。基本上,javascript用一些数字替换函数中的x,然后使用eval对函数求值。问题是,我希望用户能够键入x^2,而不是默认的javascript,即Math.powx,2。我猜这将是一些正则表达式,但我对它们几乎没有经验,我个人觉得它们真的很混乱。是否可以将像x^3-x^2这样的语句转换为Math.powx,3-Math.powx,2 非常感谢您的帮助。1是的,这是可能的。如果您解析用户输入的内容,就可以轻

我试图创建一个简单的图形计算器,用户在其中输入一个函数f,比如fx=x^2+2x+6。基本上,javascript用一些数字替换函数中的x,然后使用eval对函数求值。问题是,我希望用户能够键入x^2,而不是默认的javascript,即Math.powx,2。我猜这将是一些正则表达式,但我对它们几乎没有经验,我个人觉得它们真的很混乱。是否可以将像x^3-x^2这样的语句转换为Math.powx,3-Math.powx,2


非常感谢您的帮助。

1是的,这是可能的。如果您解析用户输入的内容,就可以轻松地自己编程。无论你在哪里看到x^n,只要把它变成数学。然后再评估。 这将适用于一个变量的多项式

2如果你想更普遍地解决更广泛的数学函数类, 您需要想出一些语法,并根据用户输入构建AST


1是的,这是可能的。如果您解析用户输入的内容,就可以轻松地自己编程。无论你在哪里看到x^n,只要把它变成数学。然后再评估。 这将适用于一个变量的多项式

2如果你想更普遍地解决更广泛的数学函数类, 您需要想出一些语法,并根据用户输入构建AST


您希望使用一个正则表达式,它看起来像

(.+)\^(.+)
这将匹配两个选择,然后使用这些匹配替换该字符串的实例,如下所示

Math.pow($1, $2)
Javascript通过String.prototype.replace中的函数选项支持此类操作


您希望使用一个正则表达式,它看起来像

(.+)\^(.+)
这将匹配两个选择,然后使用这些匹配替换该字符串的实例,如下所示

Math.pow($1, $2)
Javascript通过String.prototype.replace中的函数选项支持此类操作



是的,这是可能的。你能告诉我们到目前为止你做了什么吗?你可以从regex开始,这里eval是一种不好的做法,对于任务来说是不必要的,不说那有帮助或什么的,在大多数情况下这不是一件好事情^。然而,使用eval和regex是欺骗。谷歌和你得到成千上万的教程。用户应该能够键入fx=x^2x+1+1/2^2*x吗?是的,这是可能的。你能告诉我们到目前为止你做了什么吗?你可以从regex开始,这里eval是一种不好的做法,对于任务来说是不必要的,不说那有帮助或什么的,在大多数情况下这不是一件好事情^。然而,使用eval和regex是欺骗。谷歌和你得到了成千上万的教程。用户应该能够键入fx=x^2x+1+1/2^2*x吗?我没有也不会投反对票,但你的答案真的解释不了多少。当然,这个问题有点宽泛。@peter.petrov你真的没有给这个问题一个有用的答案。如果我问这个问题,那么我希望得到的答案不会重述我在提问时给出的示例。通过编辑,它提供了新的信息。我要取消我的否决票我认为提问者想知道如何将x^n转化为上述内容,你刚刚告诉他要这么做。@DanPrince好吧,也许吧。我只是对这个问题的理解稍有不同。我没有也不会投反对票,但你的回答并不能解释太多。当然,这个问题有点宽泛。@peter.petrov你真的没有给这个问题一个有用的答案。如果我问这个问题,那么我希望得到的答案不会重述我在提问时给出的示例。通过编辑,它提供了新的信息。我要取消我的否决票我认为提问者想知道如何将x^n转化为上述内容,你刚刚告诉他要这么做。@DanPrince好吧,也许吧。我只是对这个问题的理解有点不同。x^y*2-1呢?类似于我的免出狱卡@我认为这是一条很有意义的道路。当然,别忘了逃离ToniAlmeida。那太傻了。为大家欢呼。x^y*2-1呢?类似于我的免出狱卡@我认为这是一条很有意义的道路。当然,别忘了逃离ToniAlmeida。那太傻了。为抬头的人干杯。