javascript - javascript中的顺序算术运算

标签 javascript jquery

我有一个文本输入,用户将写入一个字符串,例如 10+20-10-2*2+4/2 并且我想顺序执行算术运算,这意味着我想要 (10+20)-(10)-(2)*(2)+(4)/(2) ,根据上面的结果应该是 20示例。

换句话说,我想从左边开始按顺序进行算术运算。任何人都可以帮助我解决这个问题,或者也许有一些想法也很好。谢谢。

请询问我是否需要更多信息。

$('#calculation').on('blur', function(e){
    e.preventDefault();
    var pattern=/^[-*/+0-9]+$/;
    value=$(this).val();
    if(value.match(pattern))
    {

        $(this).closest('tr').find('span.error').html('');
        //$('#total').val(eval(value));
        // No idea what to do

    }
    else
    {
        $(this).closest('tr').find('span.error').html('Invalid character');
    }
});

最佳答案

Try this:

var str = '10+20-10-2*2+4/2';
var numbers = str.replace(/ /g, '').split(/[-+*\/]/g);
var operators = str.replace(/ /g, '').split(/\d*/g);
operators.shift();

var result = +numbers[0];

for (var i = 0; i < operators.length - 1; i++) {
    result = eval( result + operators[i] + numbers[i + 1] );
}

alert(result)​;

DEMO

关于javascript - javascript中的顺序算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10843062/

相关文章:

javascript - 将多个数据集返回到 Node.js View

javascript - 使用函数分配模板时值不更新

javascript - 在剑道网格中使用动态下拉菜单进行内联编辑

javascript - jquery中不同时间的幻灯片图像

javascript - 当我在 php 中从数据库中检索数据并显示它时如何隐藏显示表中的密码字段

Jquery hide() 除了一个之外的所有具有特定类的元素

javascript - Console.log 在 Vue js 观察器中被调用两次

javascript - Owl Carousel "navText:"不添加箭头

javascript - AJAX 请求 jQuery 中的 this 关键字

javascript - jQuery - 检测自定义字体何时加载?