一个不错的用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.jstree 增加节点的双击事件代码
Jul 27 Javascript
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
JS 实现Json查询的方法实例
Apr 12 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
javascript中this的四种用法
May 11 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
Javascript删除指定元素节点的方法
Jun 21 Javascript
vue.js将unix时间戳转换为自定义时间格式
Jan 03 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 Javascript
Node.js的Koa实现JWT用户认证方法
May 05 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+mysql保存和输出文件
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/12/06 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
php处理带有中文URL的方法
2016/07/11 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python开发之函数定义实例分析
2015/11/12 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
pywinauto自动化操作记事本
2019/08/26 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
大一自我鉴定范文
2013/12/27 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
贫困生证明范文
2015/06/16 职场文书
七夕情人节问候语
2015/11/11 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js