JScript5.5下String.prototype.replace(str,func)的UBB嵌套的递归解开。

王朝html/css/js·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

看这个例子:

一般的UBB很难解决UBB元素"[xx]"的嵌套包含的。

使用JScript5.5的新特征,完全解决了这个问题了。

前提是UBB文本写法中,嵌套要正规,不然会影响的是嵌套内部的解析。

var thestr="a1[b]a2[b]centerb2[/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));

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航