替换字符串中的字符数组

时间:2014-05-22 10:25:11

标签: javascript character-encoding

我正在寻找一个用任何开始和结束字符替换所有的函数。

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

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()(例如天真的方式)?

1 个答案:

答案 0 :(得分:2)

你可以使用转义字符串中的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);
}