我正在尝试通过 Javascript 删除 BBCode 标签,但我无法理解如何操作。
将所有标签添加到数组中,例如:
var bbcodes = ["[b]", "[/b]"];
然后搜索我的文本并将 bbcode 替换为“”。
for (i=0; i < bbcodes.length; i++) {
selTextStrip = selTextStrip.replace(bbcodes[i], "");
}
意识到这只会替换我尝试添加表达式的第一次出现:
for (i=0; i < bbcodes.length; i++) {
selTextStrip = selTextStrip.replace(new RegExp(bbcodes[i], 'g'), "");
}
但是这会执行以下操作:
将[b]BBCode[/b]
更改为[]BBCode[]
如何更改正则表达式以适应所有这些标签:
"[b]", "[/b]", "[i]", "[/i]", "[u]", "[/u]", "[s]", "[/s]", "[left]", "[/left]", "[center]", "[/center]", "[right]", "[/right]", "[quote]", "[/quote]", "[code]", "[/code]", "[list]", "[/list]", "[img]", "[/img]", "[spoil]", "[/spoil]"
此外,如果我想从文本中删除以下标签 -> [color=red]text[/color]
我需要什么表达式来删除这两个 [color=红色]
和 [/color]
?请注意,“red”可以更改为任意长度,也可以是十六进制值 ([color=#ff0000]text[/color]
)
我尝试将 [color=(.*?)] 添加到数组中,但是与以前一样,仅删除了“color=”,而不是 #hex 值或“[]”
提前致谢。
最佳答案
text.replace(/\[\/?(?:b|i|u|s|left|center|right|quote|code|list|img|spoil|color).*?\]/g, '')
还将提供color=foo
剥离。
或者使用
text.replace(/\[\/?[^\]]*\]/g, '')
去除各种[foo Something]
标签。
关于javascript - 使用正则表达式替换删除 bb 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495196/