IE8报告了带有以下JS函数的意外量词错误,我想使用该函数从字符串中剥离某些符号。

function stripCurrencySymbols(currStr){
  var symbols = [",",'£',"p","$"];
  for(i in symbols){
    currStr = currStr.replace(new RegExp(symbols[i], 'g'),"");
  }
  return currStr;
}


我认为这是因为$需要转义,我尝试用\ $替换它,但无济于事。有任何想法吗?

最佳答案

从字符串构造正则表达式时,它应该为"\\$"

另外,为什么不这样做:

function stripCurrencySymbols(currStr){
    return currStr.replace(/[,£p$]/g, "");
}


[,£p$]是一个字符类,表示“包含的字符之一”;在字符类中,大多数转义字符(例如$)都无需转义。

09-16 09:47