JavaScript实现的UBB编码转换函数
本文介绍了一个使用JavaScript实现的UBB编码转换函数。该函数利用正则表达式将自定义的UBB标签(如粗体、斜体、颜色、图片、链接等)替换为对应的HTML标签,实现文本格式的转换。代码包含对多种格式的支持,适用于简单的富文本处理场景。
JavaScript实现的UBB编码转换函数
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; }
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
