我已阅读有关此主题的其他帖子,但似乎没有任何帮助。
好的,所以我正在编写自己的BBCode解析器。现在我的问题是如何解析[code]标签之间的BBCode?我真的不确定我会怎么做。这是我目前的代码:
$('#posttextareadisplay').text($('#textareainput').val());
var replacebbcode = $('#posttextareadisplay').html().replace(/(\[((\/?)(b|i|u|s|sup|sub|code|quote))\])/gi, '<$2>')
.replace(/(\[(rule)\])/gi, '<hr>')
.replace(/(\[((align=)(left|center|right|justify))\])/gi, '<div align="$4">')
.replace(/(\[((\/)(align))\])/gi, '</div>')
.replace(/(\[((color=#)([0-9a-fA-F]{0,}))\])/gi, '<span style="color:#$4">')
.replace(/(\[((\/)(color))\])/gi, '</span>')
.replace(/(\[((size=)(1|2|3|4|5|6))\])/gi, '<font size="$4">')
.replace(/(\[((\/)(size))\])/gi, '</font>')
.replace(/(\[((link=)([a-zA-Z0-9._:\/\\+-]{0,}))\])/gi, '<a href="$4">')
.replace(/(\[((\/)(link))\])/gi, '</a>')
.replace(/((((http|https):\/\/)(([a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|local|internal))(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@\/?]*)?)(\s+|$))/gi, '<a href="$1">$1</a>');
$('#posttextareadisplay').html(replacebbcode);
那么我该怎么办才能解析[code]标签之间的代码呢?谢谢!!! :)
P.S。我正在使用JS / Jquery
答案 0 :(得分:-1)
一种解决方案是将BBCode特殊字符[
和]
替换为相应的HTML实体[
和]
,以便以后不会对它们进行解析:
input.replace(/\[code](.*?)\[\/code]/g,function(m,a){return '<code>'+a.replace(/[[\]]/g, function(t){return '	'+(t=='['?'1':'3')+';';})+'</code>';})