【发布时间】:2010-07-11 03:31:18
【问题描述】:
a[b].innerHTML=a[b].innerHTML.replace(RegExp('['+bbc[c][0]+']','ig'),bbc[c][1])
这基本上就是我正在使用的。它包含在两个循环中,因此应该可以解释为什么它看起来像它所做的那样。基本上我想替换与'['+数组中的变量+']'匹配的东西。我正在为一个免费论坛制作一个 BBCode 脚本,不要指点我任何 BBCode 脚本。 问题是正则表达式正在替换与任何字符匹配的所有内容。因此,它将 [, q, c, o, d, e, ] 全部替换为数组的第二部分。 (QCODE 是一个正在使用的 BBCode 示例)我不知道它是否在带有 [] 的普通 /regex/ 中这样做,但这很烦人。我试过转义 [] ('\['+v+'\]'),我试过 eval(),我试过你能想象到的一切。我需要让这件事像它应该的那样工作,因为一切都按照它应该的方式设置。如果您知道如何解决此问题,请回答。不过,我希望您在回答之前测试您的解决方案,因为您不知道我尝试了多少方法来完成这项工作。
【问题讨论】:
-
要测试您的确切情况,我们需要知道 a[b].innerHTML 和 bbc[c][0]。
-
正如 TNi 建议的那样,您需要提供一个或多个单元测试。
-
变量周围有括号的任何内容。没关系。正如我在帖子中所说,qcode 就是一个例子。它只需要用 ANYTHING 替换指定变量周围的括号,只要它不替换与变量的任何字母匹配的 EVERYTHING。所以只替换“This bbcode is”中的[qcode]而不是“This bb is”(替换代码)。
标签: javascript regex replace variables