搜索:
首页 >> JavaScript >> Js高级编程 >> js处理括弧配对替换的方法

js处理括弧配对替换的方法

2008-1-16 作者:天空诚整理 来源:无忧脚本 投递文章

这个帖子在51js看到的,觉得很有学习意义,看看高手们是怎么做的吧!

提问者:infinte

急求:正则或算法,JS VBS均可。

要求:
[1]支持任意的“括弧”,也就是可以用【】<>{}()……或者类似XML的:<a></a>、[cc][cc:over]、{ttt] [ttt}
[2]严格按照层次匹配,就是(a)b(c(d)e)换成[a]b[c[d]e]而非[a]b[c(d]e) (结束太早了)
[3]左括号比右括号多时,保留多余的括号,即:()()((()()) → [][]([[][]]
[4]右括号比左括号多,保留多余的括号,即:(()()(()()))))) → [[][][[][]]])))

1.解答者:js小白

[提示:你可先修改部分代码,再按运行]

2.解答者:winter

[提示:你可先修改部分代码,再按运行]

3.解答者:月影

如果要用正则的话,下面这样,否则像winter那样用堆栈是经典的解法……

[提示:你可先修改部分代码,再按运行]

另外如果按[1]想支持其他括弧其实很好办,最简单的办法是先把那些括弧的符号组替换成(和)然后再执行上面的方法

相关文章
手机版 Js高级编程 Asp之家 Aspxhome.com
闽ICP备06017341号