gpt4 book ai didi

javascript - 使用正则表达式 javascript 删除 phpbb 标签

转载 作者:行者123 更新时间:2023-11-29 20:18:16 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 删除一个方括号(bbcode 样式),这是为了删除不需要的 bbcode。我试试这个。

theString .replace(/\[quote[^\/]+\]*\[\/quote\]/, "")

它适用于这个字符串示例:

theString = "[quote=MyName;225]Test 123[/quote]";

在这个示例中它会失败:

theString = "[quote=MyName;225]Test [quote]inside quotes[/quote]123[/quote]";

如果除了正则表达式还有其他解决方案没问题

最佳答案

其他 2 个解决方案根本行不通(请参阅我的评论)。要解决此问题,您首先需要设计一个匹配最内层匹配引号元素(既不包含 [QUOTE..] 也不包含 [/QUOTE])的正则表达式。接下来,您需要迭代,一遍又一遍地应用此正则表达式,直到不再有 QUOTE 元素为止。这个经过测试的功能可以满足您的需求:

function filterQuotes(text)
{ // Regex matches inner [QUOTE]non-quote-stuff[/quote] tag.
var re = /\[quote[^\[]+(?:(?!\[\/?quote\b)\[[^\[]*)*\[\/quote\]/ig;
while (text.search(re) !== -1)
{ // Need to iterate removing QUOTEs from inside out.
text = text.replace(re, "");
}
return text;
}

请注意,此正则表达式采用了 Jeffrey Friedl 的“Unrolling the loop”高效技术,不仅准确,而且启动速度非常快。

参见:Mastering Regular Expressions (3rd Edition) (强烈推荐)。

关于javascript - 使用正则表达式 javascript 删除 phpbb 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289263/

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