Регулярное выражение, как искать () и заменить на [] - PullRequest
3 голосов
/ 06 сентября 2010

Глупый вопрос, но я не знаю, как найти (2000) в регулярном выражении и заменить его на [2000]

Ответы [ 4 ]

12 голосов
/ 06 сентября 2010

Вы можете сделать:

str.replace(/\((\d+)\)/g, "[$1]");

Используемое регулярное выражение: \((\d+)\)

  • ( и ) - это специальные символы в регулярном выражении, используемые для группировки, для соответствия литералу( ), вам нужно избегать их, поскольку \( \)
  • \d - это сокращение от цифры.\d+ означает одну или несколько цифр.
  • ( ) - для группировки и запоминания номера.Запомненный номер будет позже использован для замены.
  • g для глобальной замены.Означает, что каждое вхождение патента в строке будет заменено.
  • $1 - это число между ( ), которое было сгруппировано и запомнено.
  • / /являются разделителями регулярных выражений.
1 голос
/ 06 сентября 2010
function _foo(str) {
   return str.replace(/[(](\d*)[)]/, '[$1]');
}

alert( _foo("(2000)") );  // -> '[2000]'
alert( _foo("(30)") );    // -> '[30]'
alert( _foo("(abc)") );   // -> '(abc)'
alert( _foo("()") );      // -> '[]'
0 голосов
/ 14 сентября 2010

Попробуйте это:

function foo(S) { 
    return S.replace(/\(([^\)]+)\)/g,"[$1]");
}
0 голосов
/ 06 сентября 2010

Как это: yourString.replace(/\(2000\)/, "[2000]");

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