如何在全局交换数组字符串,考虑元素为“**”

时间:2018-04-01 09:00:44

标签: javascript arrays str-replace

通常使用 arr.replace(/xxx/g, "yyy") 可行,但当原始字符串为"***"时,会出现问题,其中/ *将代码转换为注释。 如何在更换时保留“***”
输入

  

let arr = ["***"]

arr.replace(/***/g, "yyy")

输出

  

let arr = ["yyy"]

这是应该发生的事情

1 个答案:

答案 0 :(得分:1)

您只需使用*转义\,就可以使用{count}完全匹配3个字符。要使用此数组,您可以使用.map()创建包含已替换字符串的副本。

function replacer(str) {
  return str.replace(/\*{3}/g, "yyy");
}

let arr = ["***"];

let arr2 = arr.map(str => replacer(str));
console.log(arr2);