Поскольку регулярные выражения в js не поддерживают ретроспективных проверок, остается извращаться. Например, так
var str = "aaaaaaa(-12-)aaa(02)aaa(3)aa(4aaa8)aaa(4)a232a7a8a";
alert(
/-(\d+)(?=-)/.exec( str )[ 1 ]
);
Сообщение от GuardCat
|
2. Почему третий вариант r не работает?
|
потому, что опережающая и ретроспективная проверки находят позиции, а не текст. Пример для понимания:
alert( "[]".replace( /(?=])/, '1234' ) );