最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 替換

 更新時(shí)間:2008年02月19日 11:45:14   作者:  
js 替換
問題:就是將()()()((())())換成[][][[[]][]]的那種了,處理括弧配對用的
作者:infinte
要求:
[1]支持任意的“括弧”,也就是可以用【】<>{}()……或者類似XML的:<a></a>、[cc][cc:over]、{ttt] [ttt}
[2]嚴(yán)格按照層次匹配,就是(a)b(c(d)e)換成[a]b[c[d]e]而非[a]b[c(d]e) (結(jié)束太早了)
[3]左括號比右括號多時(shí),保留多余的括號,即:()()((()()) → [][]([[][]]
[4]右括號比左括號多,保留多余的括號,即:(()()(()()))))) → [[][][[][]]])))

方案一:使用堆棧
作者:winter
代碼:
復(fù)制代碼 代碼如下:

<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> 

方案二:使用正則
作者:月影
代碼:
復(fù)制代碼 代碼如下:

<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> 

相關(guān)文章

最新評論

高密市| 东宁县| 郴州市| 厦门市| 井研县| 龙山县| 盘锦市| 顺平县| 大同市| 荔浦县| 祁门县| 财经| 宣威市| 安多县| 宣威市| 阳曲县| 大连市| 吴江市| 沙坪坝区| 蒙山县| 乌鲁木齐市| 新宁县| 柯坪县| 虹口区| 威海市| 吴川市| 陆河县| 额敏县| 循化| 运城市| 西充县| 宁波市| 西乌珠穆沁旗| 搜索| 邹平县| 新巴尔虎右旗| 西林县| 邵东县| 乾安县| 买车| 泗水县|