javascript - 使用正则表达式替换删除 bb 代码

标签 javascript regex

我正在尝试通过 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/

相关文章:

javascript - Node : Send a file and data at once

Javascript:为什么要使用 indexOf() 来匹配字符串中的值?

javascript - 编辑当前表单向导以成功发布数据

javascript - 在 Express 中从一条路线重定向到另一条路线

javascript - 在 next.config.js 中同时添加对 next-css 和 next-less 的支持

Java 正则表达式 - 单词的一部分

java - 在 Java 中用正则表达式拆分

java - 删除正则表达式中的文字字符

regex - 一些特定数字的正则表达式

java - 正则表达式的模式