一个不错的用JavaScript实现的UBB编码函数

时间:2021-05-25

functionJsUBB(str)
{
varre=//[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,"<fontcolor=$1>$2</font>");//字体颜色
re=//[size=([1-7])/](.[^/[]*)/[//size/]/gi;
str=str.replace(re,"<fontsize=$1>$2</font>");//字体大小
re=//[face=(.[^/[]*)/](.[^/[]*)/[//face/]/gi;
str=str.replace(re,"<fontface=$1>$2</font>");//字体

re=//[center/](.[^/[]*)/[//center/]/gi;
str=str.replace(re,"<divalign='center'>$1</div>");//居中
re=//[right/](.[^/[]*)/[//right/]/gi;
str=str.replace(re,"<divalign='right'>$1</div>");//右对齐
re=//[quote/](.[^/[]*)/[//quote/]/gi;//引用
str=str.replace(re,"<tablebgcolor='#E6FFE6'width='90%'style='border:1px#009900dotted'align='center'><tr><tdclass='td1'>$1</td></tr></table>");

re=//[fly/](.*)/[//fly/]/gi;//飞行
str=str.replace(re,"<marqueewidth=90%behavior=alternatescrollamount=3>$1</marquee>");
re=//[move/](.*)/[//move/]/gi;//移动
str=str.replace(re,"<MARQUEEscrollamount=3>$1</marquee>");
re=//[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)/](.[^/[]*)/[//SHADOW]/gi;//阴影
str=str.replace(re,"<tablewidth=$1><tr><tdstyle='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,"<tablewidth=$1><tr><tdstyle='filter:glow(color=$2,strength=$3)'>$4</td></tr></table>")

re=//[URL/](.[^/[]*)/[//URL/]/gi;
str=str.replace(re,"<ahref='$1'target=_blank>$1</a>");//超链接1
re=//[URL=(.[^/[]*)/](.[^/[]*)/[//URL/]/gi;
str=str.replace(re,"<ahref='$1'target=_blank>$2</a>");//超链接2

re=//[EMAIL/]([/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+)/[//EMAIL/]/gi;
str=str.replace(re,"<ahref='mailto:$1'>$1</a>");//电子邮件链接1
re=//[EMAIL=([/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+)/](.[^/[]*)/[//EMAIL/]/gi;
str=str.replace(re,"<ahref='mailto:$1'>$4</a>");//电子邮件链接2

re=//[img/](.[^/[]*)/[//img/]/gi;
str=str.replace(re,"<ahref='$1'target=_blank><imgsrc='$1'border='0'alt='单击在新窗口浏览'></a>");//图片
re=/:em(/d{1,}):/gi;
str=str.replace(re,"<imgsrc='emot/$1.gif'border='0'>");//表情图标
returnstr;
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章