我有文本框,用户编写了一个公式,我从文本框中获取了拆分括号的文本。通过这种方式,我不尝试计算公式,而是尝试仅获取字符串。我试图从嵌套括号中获取字符串。我的代码:

var txt = "((a-b)/month)/(c+d)";
var reg = /^\((.+)\)$/;
var newTxt = txt.split('(');
for (var i = 1; i < newTxt.length; i++) {
    var value = newTxt[i].split(')')[0];

    if (value == "") {
        value = txt.match(reg)[1];
    }
    console.log(value);
}


我的输出是

   (a-b)/month)/(c+d
    a-b
    c+d


但是我正在尝试在括号之间获取字符串

(a-b)/month
a-b
c+d

最佳答案

这是另一种方式

    var a = [], r = [];
    var txt = "(((a-b)+(f-g))/month)/(c+d)";
    for(var i=0; i < txt.length; i++){
        if(txt.charAt(i) == '('){
            a.push(i);
        }
        if(txt.charAt(i) == ')'){
            r.push(txt.substring(a.pop()+1,i));
        }
    }
    alert(r);

关于javascript - 嵌套括号一一对应地得到字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30508419/

10-10 21:50
查看更多