var s = '八十七加三十二减四十三加二十四减十五减三十加三减二';
        function fn(str){
            let add = []
            let sub = []
            let num = []
            let len = str.length
            let tmp = 0
            while(tmp<len){
                tmp = str.indexOf('加',tmp)
                if(tmp === -1){
                    break;
                }
                add.push(tmp);
                tmp++
            }
            while(tmp<len){
                tmp = str.indexOf('减',tmp)
                if(tmp === -1){
                    break;
                }
                sub.push(tmp);
                tmp++
            }
            str = str.replace(/加/g,',')
            str = str.replace(/减/g,',')
            num = str.split(',')
            for(let i =0;i<num.length;i++){
                if(num[i].length == 1)
                {
                    switch(num[i]){
                        case '零':
                        num[i]=0;
                        break;
                        case '一':
                        num[i]=1;
                        break;
                        case '二':
                        num[i]=2;
                        break;
                        case '三':
                        num[i]=3;
                        break;
                        case '四':
                        num[i]=4;
                        break;
                        case '五':
                        num[i]=5;
                        break;
                        case '六':
                        num[i]=6;
                        break;
                        case '七':
                        num[i]=7;
                        break;
                        case '八':
                        num[i]=8;
                        break;
                        case '九':
                        num[i]=9;
                        break;
                        case '十':
                        num[i]=10;
                        break;
                    }
                }
                else if(num[i].length == 2)
                {
                    if(num[i][0]== '十'){
                        switch(num[i][1]){
                        case '一':
                        num[i]=11;
                        break;
                        case '二':
                        num[i]=12;
                        break;
                        case '三':
                        num[i]=13;
                        break;
                        case '四':
                        num[i]=14;
                        break;
                        case '五':
                        num[i]=15;
                        break;
                        case '六':
                        num[i]=16;
                        break;
                        case '七':
                        num[i]=17;
                        break;
                        case '八':
                        num[i]=18;
                        break;
                        case '九':
                        num[i]=19;
                        break;
                    }
                    }
                    else{
                        switch(num[i][0]){
                        case '二':
                        num[i]=20;
                        break;
                        case '三':
                        num[i]=30;
                        break;
                        case '四':
                        num[i]=40;
                        break;
                        case '五':
                        num[i]=50;
                        break;
                        case '六':
                        num[i]=60;
                        break;
                        case '七':
                        num[i]=70;
                        break;
                        case '八':
                        num[i]=80;
                        break;
                        case '九':
                        num[i]=90;
                        break;
                    }
                    }
                }
                else{
                    switch(num[i][0]){
                        case '二':
                        num[i] = num[i].replace('二','2');
                        break;
                        case '三':
                        num[i] = num[i].replace('三','3');
                        break;
                        case '四':
                        num[i] = num[i].replace('四','4');
                        break;
                        case '五':
                        num[i] = num[i].replace('五','5');
                        break;
                        case '六':
                        num[i] = num[i].replace('六','6');
                        break;
                        case '七':
                        num[i] = num[i].replace('七','7');
                        break;
                        case '八':
                        num[i] = num[i].replace('八','8');
                        break;
                        case '九':
                        num[i] = num[i].replace('九','9');
                        break;
                    }
                    switch(num[i][2]){
                        case '一':
                        num[i] = num[i][0] * 10 + 1
                        break;
                        case '二':
                        num[i] = num[i][0] * 10 + 2
                        break;
                        case '三':
                        num[i] = num[i][0] * 10 + 3
                        break;
                        case '四':
                        num[i] = num[i][0] * 10 + 4
                        break;
                        case '五':
                        num[i] = num[i][0] * 10 + 5
                        break;
                        case '六':
                        num[i] = num[i][0] * 10 + 6
                        break;
                        case '七':
                        num[i] = num[i][0] * 10 + 7
                        break;
                        case '八':
                        num[i] = num[i][0] * 10 + 8
                        break;
                        case '九':
                        num[i] = num[i][0] * 10 + 9
                        break;
                    }
                }
            }
            str = ''
            for(let j=0;j<num.length;j++)
            {
                str += num[j]
                if(add.length <= sub.length){
                    if(add[0]<sub[0])
                    {
                        str += '+'
                        add.shift()
                    }
                    else
                    {
                        str += '-'
                        sub.shift()
                    }
                }else{
                    if(add[0]>sub[0])
                    {
                        str += '-'
                        sub.shift()
                    }
                    else
                    {
                        str += '+'
                        add.shift()
                    }
                }
            }
            str = str.slice(0,str.length-1)
            return eval(str)
        }
        console.log(fn(s))