无法用包含[和]的字符串替换我的字符串

Min*_*dey 2 javascript replaceall

即使我的总字符串包含要替换的字符串,我也无法从我的总字符串中获取{info.inner.interest [0]}字符串

我在谷歌搜索了同样的问题并尝试了其他代码,即使这对我不起作用.请看下面的图片

错误图片

var a = "text :Array Item : {info.inner.interest[0]}",
  replaceThis = "info.inner.interest[0]",
  outPut = a.replace(new RegExp('{' + replaceThis + '}', 'g'), 'hello me!!')
console.log(outPut);
Run Code Online (Sandbox Code Playgroud)

当我从replaceThis中删除[0]时,此代码正常工作.当我使用[..]符号时,为什么此代码不起作用.请帮我.

Cer*_*nce 7

许多字符在正则表达式中具有特殊含义.[]指示一个字符集,并.指示任何字符,而不是字面点.如果要匹配包含任何特殊字符的字符串,则需要先使用反斜杠转义这些字符,例如:

const escape = str => str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');

var a = "text :Array Item : {info.inner.interest[0]}",
  replaceThis = "info.inner.interest[0]",
  outPut = a.replace(new RegExp('{' + escape(replaceThis) + '}', 'g'), 'hello me!!')
console.log(outPut);
Run Code Online (Sandbox Code Playgroud)

这导致正则表达式

{info\.inner\.interest\[0\]}
Run Code Online (Sandbox Code Playgroud)

而不是

{info.inner.interest[0]}
Run Code Online (Sandbox Code Playgroud)