js中按多个字符来分割字符串

var s="aa2(k24+021)--bd9(n2+1):!!";
其中aa2 ,bd9和括号里面的字符长度是变化的,现在想要以“(”,“)”,“-”来截取字符串来获得以下值
aa2
k24+021
bd9
n2+1
以括号为字符分割遇到了问题,请问大神该怎么处理才能得到想要的字符

正则截取,自己去搜吧。

var s="aa2(k24+021)--bd9(n2+1):!!";
var arr1=s.split("--");
var newArr=[];
for(var i=0;i<arr1.length;i++){
var newArr1=arr1[i].split("(");
newArr1[1]=newArr1[1].substr(0,newArr1[1].indexOf(")"));
newArr=newArr.concat(newArr1);

    }
    console.log(newArr);

以“(”,“)”,“-”来截取字符串来获得以下值
aa2
k24+021
bd9
n2+1
。直接slice;何必麻烦

括号内的部分提取其实还是看你括号内是什么字符来判断会好一点。
下面代码是提取括号内是包括: \w 和 加减乘除 构成的。

 var s = "aa2(k24+021)--bd9(n2+1):!!";
var arr_kuohao = s.match(/\([\w\+\-\*\/]+\)/g);
for (var key in arr_kuohao) {
    arr_kuohao[key] = arr_kuohao[key].slice(1, arr_kuohao[key].length - 1);
}
console.log(arr_kuohao);

var s="aa2(k24+021)--bd9(n2+1):!!";

var aa2=s.subtring(0,s.indexOf("("));

var k24_021q=s.subtring(s.indexOf("(")+1,s.indexOf(")"));

var bd9=s.subtring(s.indexOf("--")+2,s.lastindexOf("("));

这种问题就不要问啦,基础