JScript5.5下String.prototype.replace(str,func)的UBB巢狀的遞迴解開。 (轉)

gugu99發表於2007-12-10
JScript5.5下String.prototype.replace(str,func)的UBB巢狀的遞迴解開。 (轉)[@more@]

看這個例子:

一般的UBB很難解決UBB元素"[xx]"的巢狀包含的。

使用5.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,"$2");
 return str;
}
function LostUBB(str)
{
 if(typeof(str)!="string")str=str+"";
 str=str.replace(
 /([b])(.*)([/b])/gi,
 function(str,pos,raw)
 {
 return LostinetUBB(
 str.replace(/([b])(.*)([/b])/gi,"$2")
 );
 }
 );
 return str;
}
alert(NormalUBB(thestr));
alert(LostinetUBB(thestr));


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-990686/,如需轉載,請註明出處,否則將追究法律責任。

相關文章