//
JavaScript Document
// UBB代码简单实现 lxin v0.1beta;
function filter(s) ... {
//替换[b][/b][i][i]
s=s.replace(/</g,"<");
s=s.replace(/>/g,">");
s=s.replace(/[b]/g,"<b>");
s=s.replace(/[/b]/g,"</b>");
s=s.replace(/[i]/g,"<i>");
s=s.replace(/[/i]/g,"</i>");
//~~~~~
//替换[size=*][/size]
var ts=s;//临时变量
var i=0;//记录匹配到了什么地方
while(ts.match(/[size=d...{1,2}]/)!=null)...{
var t=ts.match(/[size=d...{1,2}]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var size=parseInt(ss.substring(ss.indexOf("=")+1));//获得[size=*] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font size="+size+" >")//将[size=*]替换为<font size=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s=s.replace(/[/size]/g,"</font>");
//~~~~~
//替换[link=*][/link]
ts=s;//临时变量
i=0;//记录匹配到了什么地方
while(ts.match(/[link="[^"]*"]/)!=null){
var t=ts.match(/[link="[^"]*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var linked=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[link="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
if(linked.match(/http:///)==null)linked="http://"+linked;
s=s.replace(new RegExp(ss,"g"),"<a href=""+linked+"" >")//将[link=*]替换为<a href=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s = s.replace( / [ / link] / g, " </a> " );
// ~~~~~
// 替换[color=*][/color]
ts = s; // 临时变量
i = 0 ; // 记录匹配到了什么地方
while (ts.match( / [color = " [#]?w* " ] / ) != null ) ... {
var t=ts.match(/[color="[#]?w*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var color=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[color="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font color=""+color+"" >")//将[color=*]替换为<font color="*">
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s = s.replace( / [ / color] / g, " </font> " );
s = s.replace( / / g, " <br> " );
// ~~~~~
// 替换[link=*][/link]
ts = s; // 临时变量
i = 0 ; // 记录匹配到了什么地方
while (ts.match( / [img = " [^ " ] * " ]/)!=null){
var t=ts.match(/[img= " [ ^ " ]* " ] / ); // 获得匹配的
i = ts.indexOf(t) + t.length; // 获得下次开始匹配的位置
var ss = t.toString(); // 必要
var linked = ss.substring(ss.indexOf( " =" " ) + 2 ,ss.indexOf( " "] " )); // 获得[img="*"] 的*;
ss = ss.replace( / [ / g, " /[ " ); // 注意Stirng里也是转意符
ss = ss.replace( / ] / g, " /] " );
// alert(ss);
if (linked.match( / http:// / ) == null )linked = " http:// " + linked;
s = s.replace( new RegExp(ss, " g " ), " <img src=" " + linked + " " > " ) // 将[link=*]替换为<a href=*>
if (ts.length > i)ts = ts.substring(i); // 冲这次匹配字符的后一个字符开始再次匹配;
else ts = "" ;
}
// ~~~~~
return s;
}
// UBB代码简单实现 lxin v0.1beta;
function filter(s) ... {
//替换[b][/b][i][i]
s=s.replace(/</g,"<");
s=s.replace(/>/g,">");
s=s.replace(/[b]/g,"<b>");
s=s.replace(/[/b]/g,"</b>");
s=s.replace(/[i]/g,"<i>");
s=s.replace(/[/i]/g,"</i>");
//~~~~~
//替换[size=*][/size]
var ts=s;//临时变量
var i=0;//记录匹配到了什么地方
while(ts.match(/[size=d...{1,2}]/)!=null)...{
var t=ts.match(/[size=d...{1,2}]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var size=parseInt(ss.substring(ss.indexOf("=")+1));//获得[size=*] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font size="+size+" >")//将[size=*]替换为<font size=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s=s.replace(/[/size]/g,"</font>");
//~~~~~
//替换[link=*][/link]
ts=s;//临时变量
i=0;//记录匹配到了什么地方
while(ts.match(/[link="[^"]*"]/)!=null){
var t=ts.match(/[link="[^"]*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var linked=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[link="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
if(linked.match(/http:///)==null)linked="http://"+linked;
s=s.replace(new RegExp(ss,"g"),"<a href=""+linked+"" >")//将[link=*]替换为<a href=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s = s.replace( / [ / link] / g, " </a> " );
// ~~~~~
// 替换[color=*][/color]
ts = s; // 临时变量
i = 0 ; // 记录匹配到了什么地方
while (ts.match( / [color = " [#]?w* " ] / ) != null ) ... {
var t=ts.match(/[color="[#]?w*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var color=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[color="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font color=""+color+"" >")//将[color=*]替换为<font color="*">
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s = s.replace( / [ / color] / g, " </font> " );
s = s.replace( / / g, " <br> " );
// ~~~~~
// 替换[link=*][/link]
ts = s; // 临时变量
i = 0 ; // 记录匹配到了什么地方
while (ts.match( / [img = " [^ " ] * " ]/)!=null){
var t=ts.match(/[img= " [ ^ " ]* " ] / ); // 获得匹配的
i = ts.indexOf(t) + t.length; // 获得下次开始匹配的位置
var ss = t.toString(); // 必要
var linked = ss.substring(ss.indexOf( " =" " ) + 2 ,ss.indexOf( " "] " )); // 获得[img="*"] 的*;
ss = ss.replace( / [ / g, " /[ " ); // 注意Stirng里也是转意符
ss = ss.replace( / ] / g, " /] " );
// alert(ss);
if (linked.match( / http:// / ) == null )linked = " http:// " + linked;
s = s.replace( new RegExp(ss, " g " ), " <img src=" " + linked + " " > " ) // 将[link=*]替换为<a href=*>
if (ts.length > i)ts = ts.substring(i); // 冲这次匹配字符的后一个字符开始再次匹配;
else ts = "" ;
}
// ~~~~~
return s;
}