我很难理解这意味着什么:/[\[]/ 为什么有两个替换语句?
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
我很难理解这意味着什么:/[\[]/ 为什么有两个替换语句?
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
/[\[]/是正则表达式文字。
在第一个替换中,您将在第二个替换中替换 a [by\[和 symetric。
它看起来很奇怪,因为有许多(大部分是无用的)[转义:在正则表达式中被转义,\并且[在字符串文字中被转义。
第一个正则表达式可以这样分析:
/: 正则表达式打开[: 字符集打开\[:[角色(转义是无用的,因为它在集合中)]: 字符集关闭/: 正则表达式关闭这些正则表达式对我来说看起来太冗长了:如果您在该集中只有一个字符,则不需要字符集。而且您不需要转义[字符串文字中的 。
你本来可以做的
name = name.replace(/\[/, "\\[").replace(/\]/, "\\]");
例如
'a [ b c ] d [ e ]'.replace(/\[/, "\\[").replace(/\]/, "\\]")
给
"a \[ b c \] d [ e ]"
请注意,由于没有g修饰符,因此您在每次调用 时只进行一次替换replace,这可能不是目标,因此您可能想要
name = name.replace(/\[/g, "\\[").replace(/\]/g, "\\]");
也许您会在示例中看到它是如何工作的
var name = "[[[[[]]]]]]]";
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
console.log(name);
结果你会有
\[[[[[\]]]]]]]
此正则表达式替换第一次出现的[to\[和第一次出现的]to\]
那就是使用正则表达式。如果你不熟悉正则表达式,你可能想先学习一下。
这实际上并不特定于 Javascript,大多数编程语言都使用正则表达式,但略有不同。研究正则表达式,一旦你知道它就非常有用!