【问题标题】:How can I make a bbcode decoder that turns html end tags into the bbcode end tag they started as?如何制作一个 bbcode 解码器,将 html 结束标签转换为它们开始时的 bbcode 结束标签?
【发布时间】:2013-06-04 01:13:31
【问题描述】:

我有一些 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 不允许这样做。

【问题讨论】:

  • 你愿意为此使用 jQuery 吗?
  • 好的,发布你拥有的 jQuery,它将 BBcode 更改为 HTML。
  • OP 已编辑。我实际上没有为这个特定功能使用任何 jquery,但我确实在其他地方使用它。我认为我的代码是最简单的方法。
  • 首先,为什么在函数执行完成之前返回任何东西?
  • 所有这些替换函数都在变量输入上执行。唯一的分号在末尾。

标签: javascript html tags bbcode


【解决方案1】:

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

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-->')
;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多