Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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_Jquery - Fatal编程技术网

基于公式的JavaScript操作

基于公式的JavaScript操作,javascript,jquery,Javascript,Jquery,上面的函数公式是我从db得到的,它是动态的。当我试图提醒结果时,它会取代公式。该操作未执行。我该怎么做呢 公式示例:数量*比率,百分比*比率/100 <script> function oprations(formula){ var quantity=$('.quantity').val(); var rate=$('.rate').val(); var percentage=$('.percentage').val(); var

上面的函数公式是我从db得到的,它是动态的。当我试图提醒结果时,它会取代公式。该操作未执行。我该怎么做呢

公式示例:
数量*比率
百分比*比率/100

   <script>
    function oprations(formula){
     var quantity=$('.quantity').val();
     var rate=$('.rate').val();
     var percentage=$('.percentage').val();
     var gst=$('.gst').val();
     var result=parseInt(formula);
     $('.result').text(result);
     alert(result);
     }
     </script>

函数运算(公式){
变量数量=$('.quantity').val();
var rate=$('.rate').val();
变量百分比=$('.percentage').val();
var gst=$('.gst').val();
var result=parseInt(公式);
$('.result').text(result);
警报(结果);
}

我期望操作值的输出,但它显示公式。

不幸的是,使用
eval()
可能是唯一的解决方案,但并不安全

eval()
允许执行公式,但可能会给代码带来严重的安全风险

我建议您确定将作为公式得到的字符串的格式,并创建一个用于计算的函数

下面是一个简单的
+
公式示例:

function operate(text) {
    var values = text.split("+");

    return parseInt(values[0]) + parseInt(values[1]);
}

alert(operate("9+2"));

实现这一点的唯一方法是使用
eval
,这有一些需要注意的严重安全风险。请参阅查看感谢重播,此处+运算符不是固定的,在一个公式中可能是*或%或/或更多运算符。以上只是一个示例。您可以基于公式的模式构建函数