一个不错的用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教程(3) 数组使用简介
Sep 14 Javascript
jquery validate.js表单验证的基本用法入门
May 13 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 Javascript
使用vue-cli导入Element UI组件的方法
May 16 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
原生jQuery实现只显示年份下拉框
Dec 24 jQuery
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
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中PDO的错误处理
2011/09/04 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
php进程间通讯实例分析
2016/07/11 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python3.6正式版新特性预览
2016/12/15 Python
python中defaultdict的用法详解
2017/06/07 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
股份合作协议书
2014/09/10 职场文书
学生偷窃检讨书
2014/09/25 职场文书