Javascript 我如何制作一个bbcode解码器,将html结束标记转换为它们开始时的bbcode结束标记?

Javascript 我如何制作一个bbcode解码器,将html结束标记转换为它们开始时的bbcode结束标记?,javascript,html,tags,bbcode,Javascript,Html,Tags,Bbcode,我有一些javascript,可以 [b]测试[/b] 进入 测试 还有这个 [i]测试2[/i] 将变成 测试 这很好,但我也需要能够解码。由于有多种类型的bbcode都具有相同的结束标记,我如何找到一种方法将结束标记标识为它们开始时的bbcode标记 编辑:我用来解析包含bbcode的文本的代码: function bbencode(input){ return input .replace(/\n/ig, '<br/>') .replace(/\[b\]/ig, '<sp

我有一些javascript,可以
[b]测试[/b]
进入
测试

还有这个
[i]测试2[/i]
将变成
测试

这很好,但我也需要能够解码。由于有多种类型的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>')
;
}
函数bbencode(输入){
返回输入
.替换(/\n/ig,
) .替换(/\[b\]/ig') .替换(/\[\/b\]/ig,“”) .替换(/\[i\]/ig',) .替换(/\[\/i\]/ig,“”) ; }
我的问题在解码器中:

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]")
;
}
功能bbdecode(输入){
返回输入
.替换(/\n/ig,“
”) .替换(//ig,“[b]”) .replace(//ig,[/b]”) .替换(//ig,“[i]”) .replace(//ig,“[/i]”) ; }

每个span end标记都需要解释为它开始时的bbcode end标记,但无法区分它们之间的区别。我尝试将类放在末尾标记中,但firefox不允许这样做。

您可以在标记后添加注释,然后进行测试,例如:

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-->')
;
}
函数bbencode(输入){
返回输入
.替换(/\n/ig,
) .替换(/\[b\]/ig') .替换(/\[\/b\]/ig,“”) .替换(/\[i\]/ig',) .替换(/\[\/i\]/ig,“”) ; }
您愿意为此使用jQuery吗?好的,发布您的jQuery,将BBcode更改为HTML.OP编辑。实际上,我没有为这个特定函数使用任何jquery,但我在其他地方使用了它。我认为我的代码是最简单的方法。首先,为什么在函数执行之前返回任何内容?所有这些替换函数都在变量输入上执行。唯一的分号在末尾。