// 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;
}
本文介绍了一个简单的JavaScript函数,该函数能够将特定的UBB(Ultimate Bulletin Board)代码转换成HTML标签,支持加粗、斜体、字体大小、链接、颜色及图片插入等功能。

1万+

被折叠的 条评论
为什么被折叠?



