所以我有一些将 BBCode 转换为 HTML 的 Javascript,这似乎工作得很好,但我有一个问题。
这是我用来将 BB 标签 [b] 和 [/b] 转换为 <b> 和 </b>的表达式之一。
str = str.replace(/\[b\]((\s|\S)*?)\[\/b\]/ig, '<b>$1</b>');
这也会转换连续的标签。例如
[b]str1[/b] [b]str2[/b]
变成
字符串 1 字符串 2
哪个好;这就是我想要它做的。但是,当我尝试像这样匹配引号标签时
str = str.replace(/\[quote\]((\s|\S)*?)\[\/quote\]/ig, '<span class="quotebox">$1</span>');
str 在哪里
[quote]1 级嵌套[quote]2 级嵌套[/quote][/quote]
只有第一个标签被匹配和转换,所以我最终得到的输出看起来像
嵌套级别 1 [quote]嵌套级别 2
[/引用]
使用引号框外的最后一个引号标签 - 它应该嵌套在另一个引号内。帮助?
另外,如果它是相关的,quotebox 类如下
.quotebox{
边框:1px 内嵌黑色;
显示:块;
边距底部:5px;
边距顶部:5px;
填充:2px 2px 2px 4px;
}