JavaScript WYSIWYG方程构建器和函数创建

时间:2015-10-16 08:41:41

标签: javascript math

是否有任何简单的方程式构建器(对于基本方程式 - 无需矩阵),不仅可以创建可读和可编辑的公式,还可以创建可以调用的函数。

Mockup example

2 个答案:

答案 0 :(得分:1)

由于有编辑人员可以按照你的要求建立数学函数,我想尝试一下#34;创建javascript函数"一部分。

我的方法是尝试使用正则表达式检测任何数学函数,数学常量或变量,并用适当的javascript调用替换它们。这假设您有一个数学表达式,如问号图像2 * \pi * r中的数学表达式作为输入。

var mathExpression = $(this).text();
var variables = [];

function handleElement(match){

    if (match == '\\pi') return "Math.PI";

    // Doesn't match any constant/function --> is a variable
    if (variables.indexOf(match) < 0){
        variables.push(match);      
    }

    return match;
};

var jsExpression = mathExpression.replace(/[^\d\s.+\-*^()]+/g,handleElement);

var result = "var y = function(";
result += variables.join(', ');
result += "){ ";
result += "return ";
result += jsExpression
result += "; }";

console.log(result);   

当然,这只是一个示例解决方案,并不是完整的。根据您要生成的函数的复杂性,使用此方法解析所有表达式可能非常困难(如果不是不可能)。例如,像a^2这样的表达式。您可能希望将其解析为Math.pow(a,2)。虽然当两个参数都是单个术语时很容易这样做,但像(2+x)^((2 + x) * 3)这样的东西将很难解析,因为你必须平衡括号以决定{{1}内的属性。功能。

你可以看到一个有效的jsfiddle实现了更多的函数here

答案 1 :(得分:0)

我认为这最接近你问的... JavaScript计算器。在网上找到它。测试它,它很好。也尝试一下。你可以添加课程的功能..

document.getElementById("'liElement'")

https://jsfiddle.net/wyspa6m9

enter image description here