一个不错的用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 相关文章推荐
jquery 表单取值常用代码
Dec 22 Javascript
Eval and new funciton not the same thing
Dec 27 Javascript
js控制淡入淡出示例代码
Nov 12 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
jQuery实现简易的输入框字数计数功能示例
Jan 16 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
详解JavaScript自定义函数
Jul 29 Javascript
Vue性能优化的方法
Jul 30 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
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python全栈知识点总结
2019/07/01 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
python中pdb模块实例用法
2021/01/15 Python
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
什么是View State?
2013/01/27 面试题
消防安全责任书
2014/04/14 职场文书
委托书范本
2014/09/13 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
2015年母亲节寄语
2015/03/23 职场文书
无工作证明怎么写
2015/06/15 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书