gpt4 book ai didi

javascript - 如何通过 JavaScript 将 [list] BBCode 转换为 HTML?

转载 作者:行者123 更新时间:2023-11-28 02:04:01 24 4
gpt4 key购买 nike

我正在通过 JavaScript 将 BBCode 写入 HTML praser。我用 [b]、[i]、[img]、... 标签成功了,但是用 [list] 标签,我不知道该怎么做,因为它的元素可能是 2、3、n ,... 你能帮我转换吗:

[list]
item 1
item 2
item 3
[/list]

<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<ul>

非常感谢。

最佳答案

如果您正在使用 indexOf 的可怕组合, splitsubstring @Dai 在说,类似下面的东西就可以了。

var start = this.value.indexOf("[list]"),
ending = this.value.indexOf("[/list]"),
lines = this.value.substring(start + 7, ending - 1).split("\n");

//perform loop on `lines`:
// "<li>" + lines[i] + "</li>"

本质上,这将获得 [list] 的开始位置和 [/list]然后得到中间的线。你会注意到在 substring() ,我说 start+7ending-1 .这可以解释为您的实际行的起始位置将在 [list] 的索引处。 +字符串的实际长度[list] + 输入字符。 末尾减一以删除输入字符。执行此操作的更好方法是简单地在开始时添加 6 而不是 7,减去 0,然后只删除任何空数组值,但是,根据您对用户的确切语法要求,任何一种方法都可以。

请记住 lines变量将保存在两个列表 bbcode 之间输入的所有行,这意味着您必须循环遍历它们,然后用 <li></li> 包装它们标签。另外,我建议验证多项内容,例如确保 start > ending并多次执行此操作,以便您知道每次出现 [list]而不仅仅是第一个。

关于javascript - 如何通过 JavaScript 将 [list] BBCode 转换为 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com