// html 转 ubb
var htmlToBBCode = function (html) {
html = html.replace(/\[/gi, "&lBrac");
html = html.replace(/\]/gi, "&rBrac");
// html = html.replace(/<b>/gi, "[b]");
html = html.replace(/<i>/gi, "[i]");
html = html.replace(/<u>/gi, "[u]");
// html = html.replace(/<\/b>/gi, "[/b]");
html = html.replace(/<\/i>/gi, "[/i]");
html = html.replace(/<\/u>/gi, "[/u]");
html = html.replace(/<s>/gi, "[s]");
html = html.replace(/<\/s>/gi, "[/s]");
html = html.replace(/<em>/gi, "[i]");
html = html.replace(/<\/em>/gi, "[/i]");
html = html.replace(/<strong>/gi, "[b]");
html = html.replace(/<\/strong>/gi, "[/b]");
html = html.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, "[url=$2]$4[/url]");
html = html.replace(/<span class="nb" style="text-align:( )?(.*?)(;)?">(.*?)<\/span>$/gi, "[$2]$4[/$2]");
html = htmlToBBCodeParseSpan(html);
return html;
}
var htmlToBBCodeParseSpan = function (html) {
if (html.match(/<span[^>]*>/gi)) {
var found = html.match(/<span[^>]*>[^>]*<\/span>/gi);
found.forEach(function(v) {
html = html.replace(v, htmlToBBCodeReplaceSpan(v));
});
return htmlToBBCodeParseSpan(html);
} else {
return html
}
}
var htmlToBBCodeReplaceSpan = function (html) {
html = html.replace(/<span style="font-family:(.*?)">(.*?)<\/span>/gi, "[font=$1]$2[/font]");
html = html.replace(/<span style="font-size:(.*?)px">(.*?)<\/span>/gi, "[size=$1]$2[/size]");
html = html.replace(/<span style="color:(.*?)">(.*?)<\/span>/gi, "[color=$1]$2[/color]");
html = html.replace(/<span style="background-color:(.*?)">(.*?)<\/span>/gi, "[bgcolor=$1]$2[/bgcolor]");
html = html.replace(/<span>(.*?)<\/span>/gi, "$1");
return html;
}
// ubb 转 html
var BBCodeToHtml = function (bbcode) {
bbcode = bbcode.replace(/&lBrac/gi, '[')
bbcode = bbcode.replace(/&rBrac/gi, ']')
bbcode = bbcode.replace(/&nbsp;/g, ' ')
bbcode = bbcode.replace(/&lt;/g, '<')
bbcode = bbcode.replace(/&gt;/g, '>')
bbcode = bbcode.replace(/&amp;/g, '&')
bbcode = bbcode.replace(/\[i\]/gi, "<em>");
bbcode = bbcode.replace(/\[\/i\]/gi, "</em>");
bbcode = bbcode.replace(/\[b\]/gi, "<strong>");
bbcode = bbcode.replace(/\[\/b\]/gi, "</strong>");
bbcode = bbcode.replace(/\[u\]/gi, "<u>");
bbcode = bbcode.replace(/\[\/u\]/gi, "</u>");
bbcode = bbcode.replace(/\[s\]/gi, "<s>");
bbcode = bbcode.replace(/\[\/s\]/gi, "</s>");
bbcode = bbcode.replace(/\[bgcolor=(.*?)\]/gi, '<span style="background-color:$1">')
bbcode = bbcode.replace(/\[font=(.*?)\]/gi, '<span style="font-family:$1">')
bbcode = bbcode.replace(/\[size=(.*?)\]/gi, '<span style="font-size:$1px;">')
bbcode = bbcode.replace(/\[color=(.*?)\]/gi, '<span style="color:$1">')
bbcode = bbcode.replace(/\[left\]/gi, '<span class="nb" style="text-align: left;">')
bbcode = bbcode.replace(/\[center\]/gi, '<span class="nb" style="text-align: center;">')
bbcode = bbcode.replace(/\[right\]/gi, '<span class="nb" style="text-align: right;">')
bbcode = bbcode.replace(/\[\/(left|center|right)\]/gi, '</span>')
bbcode = bbcode.replace(/\[\/(font|size|bgcolor|color)\]/gi, "</span>");
bbcode = bbcode.replace(/\[url=(.*?)\](.*?)\[\/url\]/gi, '<a href="$1">$2<\/a>')
return bbcode;
}
// ubb对齐方式预览
function BBcodeToShare(bbcode) {
bbcode = bbcode.replace(/\[left\]/gi, '<p class="nb" style="text-align: left;">')
bbcode = bbcode.replace(/\[center\]/gi, '<p class="nb" style="text-align: center;">')
bbcode = bbcode.replace(/\[right\]/gi, '<p class="nb" style="text-align: right;">')
bbcode = bbcode.replace(/\[\/(left|center|right)\]/gi, '</p>')
bbcode = BBCodeToHtml(bbcode)
return bbcode
}
// ubb清除
var BBCodeToEmpty = function (bbcode) {
bbcode = bbcode.replace(/\[i\]/gi, "");
bbcode = bbcode.replace(/\[\/i\]/gi, "");
bbcode = bbcode.replace(/\[b\]/gi, "");
bbcode = bbcode.replace(/\[\/b\]/gi, "");
bbcode = bbcode.replace(/\[u\]/gi, "");
bbcode = bbcode.replace(/\[\/u\]/gi, "");
bbcode = bbcode.replace(/\[s\]/gi, "");
bbcode = bbcode.replace(/\[\/s\]/gi, "");
bbcode = bbcode.replace(/\[bgcolor=(.*?)\]/gi, '')
bbcode = bbcode.replace(/\[font=(.*?)\]/gi, '')
bbcode = bbcode.replace(/\[size=(.*?)\]/gi, '')
bbcode = bbcode.replace(/\[color=(.*?)\]/gi, '')
bbcode = bbcode.replace(/\[left\]/gi, '')
bbcode = bbcode.replace(/\[center\]/gi, '')
bbcode = bbcode.replace(/\[right\]/gi, '')
bbcode = bbcode.replace(/\[\/(left|center|right)\]/gi, '')
bbcode = bbcode.replace(/\[\/(font|size|bgcolor|color)\]/gi, "");
bbcode = bbcode.replace(/\[url=(.*?)\](.*?)\[\/url\]/gi, '')
return bbcode;
}
ckeditor ubb正则替换规则
于 2021-12-08 16:13:30 首次发布