RegExp работает в Chrome, но не в Firefox или IE11 [duplicate]

  1. Примитивы (Number, Boolean) передаются по значению. Строки неизменяемы, поэтому для них это не имеет особого значения.
  2. Объекты передаются по ссылке (ссылка передается по значению)
16
задан Maksim Vi. 17 November 2010 в 00:38
поделиться

3 ответа

var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;
4
ответ дан Phrogz 23 August 2018 в 01:13
поделиться

JavaScript не поддерживает утверждения look-behind. Используйте этот шаблон вместо:

/{index:(\d+)}/g

Затем извлеките значение, зафиксированное в группе.

9
ответ дан cdhowie 23 August 2018 в 01:13
поделиться
  • 1
    он извлекает все это, в моем случае мне просто нужно целое число. – Maksim Vi. 17 November 2010 в 00:54
  • 2
    @negative: Обратите внимание на круглые скобки вокруг \d+; целое число фиксируется в группе # 1. – Alan Moore 17 November 2010 в 01:37
  • 3
    @Alan Moore, возможно, я делаю что-то неправильно, но "some text{index:1}{id:2}{value:3}".match(/{index:(\d+)}/g)[0] возвращает {index:1} И "some text{index:1}{id:2}{value:3}".match(/{index:(\d+)}/g)[1] возвращает «undefined». – Maksim Vi. 17 November 2010 в 01:56

(?<= ) - это положительный lookbehind. JavaScript-код RegEx не поддерживает lookbehind (но он поддерживает lookaheads).

41
ответ дан Yves M. 23 August 2018 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: