我正在尝试通过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[]
如何更改RegExp以套装所有这些标签:
"[b]", "[/b]", "[i]", "[/i]", "[u]", "[/u]", "[s]", "[/s]", "[left]", "[/left]", "[center]", "[/center]", "[right]", "[/right]", "[quote]", "[/quote]", "[code]", "[/code]", "[list]", "[/list]", "[img]", "[/img]", "[spoil]", "[/spoil]"
除此之外,如果我想从文本中删除以下标记 - &gt; [color=red]text[/color]
我需要删除[color=red]
和[/color]
的表达式?注意'red'可以更改为任意长度,也可以是十六进制值([color=#ff0000]text[/color]
)
我尝试将[color =(。*?)]添加到数组中,但之前只删除'color ='而不是#hex值,也不删除'[]'
提前致谢。
答案 0 :(得分:1)
text.replace(/\[\/?(?:b|i|u|s|left|center|right|quote|code|list|img|spoil|color).*?\]/g, '')
还会提供color=foo
剥离。
或使用
text.replace(/\[\/?[^\]]*\]/g, '')
删除所有类型的[foo something]
代码。
答案 1 :(得分:0)
您可以使用正则表达式\[\\?\w*\]
查看this