不是在代码标签之间解析bbcode



我已经阅读了有关此主题的其他帖子,但是它们似乎没有帮助。

好,所以我正在编码自己的bbcode解析器。现在我的问题是,如何不解析[代码]标签之间的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+_-.%=&amp;]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@/?]*)?)(s+|$))/gi, '<a href="$1">$1</a>');
    $('#posttextareadisplay').html(replacebbcode);

那么,我该怎么做才能在[代码]标签之间解析代码?谢谢你!!!:)

P.S。我正在使用js/jquery

一种解决方案将是用相应的HTML实体&#91;&#93;替换BBCODE特殊字符[],以便以后不会解析它们:

input.replace(/[code](.*?)[/code]/g,function(m,a){return '<code>'+a.replace(/[[]]/g, function(t){return '&#9'+(t=='['?'1':'3')+';';})+'</code>';})

最新更新