IE8中的意外量词

时间:2011-11-16 21:00:30

标签: javascript regex internet-explorer-8

IE8报告了一个意外的量词错误,带有以下JS函数,我想用它来从字符串中去除某些符号。

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

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

1 个答案:

答案 0 :(得分:3)

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

另外,为什么不这样做:

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

[,£p$]是一个字符类,意思是“包含的字符之一”;在字符类中,大多数元字符如$不需要转义。