替换字符串中的字符数组

Replace array of chars in a string

本文关键字:字符 数组 字符串 替换      更新时间:2023-09-26

我正在寻找一个函数,做replaceAll与任何开始和结束字符。

我知道我可以使用正则表达式:

string=string.replace(/a/g,"b");

但是,因为搜索的字符是在正则表达式中,所以有时需要转义该字符,有时不需要,如果我想为完整的字符列表

执行此操作,这很烦人
convertEncoding= function(string) {
   var charMap= {'"':""",'&':"&",...}
   for (startChar in charMap) {
      endChar=charMap[startChar];
      string= string.replaceAll(startChar,endChar);
   }
}

它们是一个很好的方式来编写函数replaceAll,而不做for循环和使用String.replace()(例如幼稚的方式)?

您可以在字符串中使用转义RegExp特殊字符,如下面所述https://stackoverflow.com/a/6969486/519995:

,然后你可以使用regexp全局替换

function escapeRegExp(str) {
   return str.replace(/['-'[']'/'{'}'(')'*'+'?'.'''^'$'|]/g, "''$&");
}
for (startChar in charMap) {
   endChar=charMap[startChar];
   result = string.replace(RegExp(escapeRegExp(startChar), 'g'), endChar);
}