我有一些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不允许它。
答案 0 :(得分: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-->')
;
}