0

我有一些 javascript 会 [b]test[/b] 变成 <span class="bbcode_bold">test</span>

此外,这 [i]test 2[/i] 将变成 <span class="bbcode_italic">test</span>

这很好用,但我也需要能够解码它。对于具有相同结束标签的多种类型的 bbcode,我如何才能找到一种方法来将结束标签识别为它们开始时的 bbcode 标签?

编辑:我用来解析带有 bbcode 的文本的代码:

function bbencode(input){
return input
.replace(/\n/ig, '<br/>')
.replace(/\[b\]/ig, '<span class="bbcode_bold">')
.replace(/\[\/b\]/ig, '</span>')
.replace(/\[i\]/ig, '<span class="bbcode_italic">')
.replace(/\[\/i\]/ig, '</span>')
;
}

我的问题出在解码器中:

function bbdecode(input){
return input
.replace(/\n/ig, "<br/>")
.replace(/<span class="bbcode_bold">/ig, "[b]")
.replace(/<\/span>/ig, "[/b]")
.replace(/<span class="bbcode_italic">/ig, "[i]")
.replace(/<\/span>/ig, "[/i]")
;
}

每个 span 结束标记都需要被解释为它开始时的 bbcode 结束标记,但无法区分。我尝试将类放在末尾标签中,但 Firefox 不允许这样做。

4

1 回答 1

2

您可以在标签后添加评论,然后对其进行测试,例如:

function bbencode(input){
    return input
    .replace(/\n/ig, '<br/>')
    .replace(/\[b\]/ig, '<span class="bbcode_bold">')
    .replace(/\[\/b\]/ig, '</span><!--BOLD-->')
    .replace(/\[i\]/ig, '<span class="bbcode_italic">')
    .replace(/\[\/i\]/ig, '</span><!--ITALIC-->')
;
}
于 2013-06-04T05:03:18.433 回答