一个不错的用JavaScript实现的UBB编码函数


Posted in Javascript onMarch 09, 2007

function JsUBB(str)  
{  
var re=//[i/](.[^/[]*)/[//i/]/gi;  
str=str.replace(re,"<i>$1</i>"); //斜体字  
re=//[b/](.[^/[]*)/[//b/]/gi;  
str=str.replace(re,"<b>$1</b>"); //粗体字  
re=//[u/](.[^/[]*)/[//u/]/gi;  
str=str.replace(re,"<u>$1</u>"); //下划线  
re=//[color=(.[^/[]*)/](.[^/[]*)/[//color/]/gi;  
str=str.replace(re,"<font color=$1>$2</font>"); //字体颜色  
re=//[size=([1-7])/](.[^/[]*)/[//size/]/gi;  
str=str.replace(re,"<font size=$1>$2</font>"); //字体大小  
re=//[face=(.[^/[]*)/](.[^/[]*)/[//face/]/gi;  
str=str.replace(re,"<font face=$1>$2</font>"); //字体  

re=//[center/](.[^/[]*)/[//center/]/gi;  
str=str.replace(re,"<div align='center'>$1</div>"); //居中  
re=//[right/](.[^/[]*)/[//right/]/gi;  
str=str.replace(re,"<div align='right'>$1</div>"); //右对齐  
re=//[quote/](.[^/[]*)/[//quote/]/gi; //引用  
str=str.replace(re,"<table bgcolor='#E6FFE6' width='90%' style='border:1px #009900 dotted' align='center'><tr><td class='td1'>$1</td></tr></table>");  

re=//[fly/](.*)/[//fly/]/gi; //飞行  
str=str.replace(re,"<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>");  
re=//[move/](.*)/[//move/]/gi; //移动  
str=str.replace(re,"<MARQUEE scrollamount=3>$1</marquee>");  
re=//[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)/](.[^/[]*)/[//SHADOW]/gi; //阴影  
str=str.replace(re,"<table width=$1><tr><td style='filter:shadow(color=$2, strength=$3)'>$4</td></tr></table>");  
re=//[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)/](.[^/[]*)/[//GLOW]/gi; //外发光  
str=str.replace(re,"<table width=$1 ><tr><td style='filter:glow(color=$2, strength=$3)'>$4</td></tr></table>")  

re=//[URL/](.[^/[]*)/[//URL/]/gi;  
str=str.replace(re,"<a href='$1' target=_blank>$1</a>"); //超链接1  
re=//[URL=(.[^/[]*)/](.[^/[]*)/[//URL/]/gi;  
str=str.replace(re,"<a href='$1' target=_blank>$2</a>"); //超链接2  

re=//[EMAIL/]([/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+)/[//EMAIL/]/gi;  
str=str.replace(re,"<a href='mailto:$1'>$1</a>"); //电子邮件链接1  
re=//[EMAIL=([/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+)/](.[^/[]*)/[//EMAIL/]/gi;  
str=str.replace(re,"<a href='mailto:$1'>$4</a>"); //电子邮件链接2  

re=//[img/](.[^/[]*)/[//img/]/gi;  
str=str.replace(re,"<a href='$1' target=_blank><img src='$1' border='0' alt='单击在新窗口浏览'></a>"); //图片  
re=/:em(/d{1,}):/gi;  
str=str.replace(re,"<img src='emot/$1.gif' border='0'>"); //表情图标  
return str;  
}

Javascript 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
用javascript添加控件自定义属性解析
Nov 25 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
Sep 07 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
JS判断数组四种实现方法详解
Jun 29 Javascript
Ant Design的Table组件去除
Oct 24 Javascript
B/S开发中常用javaScript技术与代码
Mar 09 #Javascript
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 #Javascript
超级兔子让浮动层消失的前因后果
Mar 09 #Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 #Javascript
javascript的对话框详解与参数
Mar 08 #Javascript
打开超链需要“确认”对话框的方法
Mar 08 #Javascript
javascript学习随笔(使用window和frame)的技巧
Mar 08 #Javascript
You might like
文件上传类
2006/10/09 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python中的装饰器用法详解
2015/01/14 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
详解Python中的文件操作
2016/08/28 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python是否适合网页编程详解
2019/10/04 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
模范教师事迹材料
2014/02/10 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
小学四年级学生评语
2014/12/26 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
病假证明模板
2015/06/19 职场文书
校园之声广播稿
2015/08/18 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
Java 数组的使用
2022/05/11 Java/Android