В чем проблема с моим кодом
var str = "[356] Hello World"; var patt = new RegExp("(?!\[)\d+(?<!\])",""); var result = patt.exec(str);
Результат должен быть = 356
Проблема в том, что вы не можете делать негативные взгляды в Javascript.
Что-то вроде этого должно работать:
var str = '[356] Hello World', patt = /\[(\d+)\]/, result = patt.exec(str)[1];
Это создает подходящую группу и выбирает совпадениес [1].
[1]
В дополнение к тому, что указали другие, у вас неправильный синтаксис для обходных путей.
(?!regex)
(?<!regex)
Так как взгляды не поддерживаются в JS, ответы Thai и loneomeday являются подходящими.На языке, который их поддерживал, вы бы хотели:
/(?<=\[)\d+(?=\])/
Lookbehinds не поддерживаются в JavaScript .
Вместо этого вы можете попробовать использовать подшаблоны.
var str = "[356] Hello World"; var match = str.match(/\[(\d+)\]/); var result = match ? match[1] : null;