Неожиданный квантификатор в IE8 - PullRequest
2 голосов
/ 17 ноября 2011

IE8 сообщает о непредвиденной ошибке квантификатора со следующей функцией JS, которую я хочу использовать для удаления определенных символов из строки.

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

Я думаю, что это потому, что $ нужно экранировать, я попытался заменить его на \ $, но безрезультатно. Есть идеи?

1 Ответ

3 голосов
/ 17 ноября 2011

Это должно быть "\\$", когда вы создаете регулярное выражение из строки.

Кроме того, почему бы не сделать это:

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

[,£p$] - класс символов, означающий «один из включенных символов»; внутри класса символов не нужно экранировать большинство метасимволов, таких как $.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...