一个不错的用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 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js里的prototype使用示例
Nov 19 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
web打印小结
Jan 11 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
详解Element-UI中上传的文件前端处理
Aug 07 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
Apr 07 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP文件操作实例总结
2016/09/27 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
深入理解Javascript中的this关键字
2015/03/27 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
python中实现词云图的示例
2020/12/19 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
高中军训感言600字
2014/03/11 职场文书
战略合作意向书
2014/07/29 职场文书
2014年党建工作总结
2014/11/11 职场文书
乌镇导游词
2015/02/02 职场文书
葬礼主持词
2015/07/02 职场文书
体育教师教学随笔
2015/08/15 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL