方案一:使用堆栈 作者:winter 代码: 复制代码 代码如下: <script> var strArr = "()()((()())";
function change(str) { var a=str.split(""); var c=0; var stack=[]; var match={ "(":")", "{":"}", "<":">", "【":"】" } for(var i=0;i<a.length;i++) if(match[a[i]]){ stack.push([a[i],i]); } else if(a[i]==")"||a[i]=="}"||a[i]==">"||a[i]=="】"){ if(!stack.length)continue; var tmp=stack.pop(); if(match[tmp[0]]==a[i])a[i]="]",a[tmp[1]]="["; else stack.push(tmp); } return a.join("") ; } alert(change(strArr)); </script>
方案二:使用正则 作者:月影 代码: 复制代码 代码如下: <script> var strArr = "()()((()())"; var o = strArr; var r = o; do{ o = r; r = o.replace(/(([^()]*))/g,function(s,a){return "["+a+"]"}); }while(o!=r); alert(r); </script>