看这个例子:
一般的UBB很难解决UBB元素"[xx]"的嵌套包含的。
使用JScript5.5的新特征,完全解决了这个问题了。
前提是UBB文本写法中,嵌套要正规,不然会影响的是嵌套内部的解析。
var thestr="[b]a1[b]a2[b]center[/b]b2[/b]b1[/b]"; function NormalUBB(str) { if(typeof(str)!="string")str=str+""; str=str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>"); return str; } function LostinetUBB(str) { if(typeof(str)!="string")str=str+""; str=str.replace( /(\[b\])(.*)(\[\/b\])/gi, function(str,pos,raw) { return LostinetUBB( str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>") ); } ); return str; } alert(NormalUBB(thestr)); alert(LostinetUBB(thestr)); 
|