Javascript 我如何制作一个bbcode解码器,将html结束标记转换为它们开始时的bbcode结束标记?
我有一些javascript,可以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
[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,但我在其他地方使用了它。我认为我的代码是最简单的方法。首先,为什么在函数执行之前返回任何内容?所有这些替换函数都在变量输入上执行。唯一的分号在末尾。