一个不错的用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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
JS简单判断滚动条的滚动方向实现方法
Apr 28 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 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 保留小数点
2009/04/21 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php生成zip文件类实例
2015/04/07 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
解析Python中的异常处理
2015/04/28 Python
Python定时执行之Timer用法示例
2015/05/27 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
Python内存读写操作示例
2018/07/18 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python 多线程串行和并行的实例
2019/02/22 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
大学生翘课检讨书范文
2014/10/06 职场文书
可怜妈妈观后感
2015/06/09 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
Java界面编程实现界面跳转
2022/06/16 Java/Android