Тепер, коли Javascript дивиться назад (як на ES2018 ), у нових середовищах ви можете уникати груп повністю в таких ситуаціях. Швидше, дивіться за тим, що відбувається перед групою, яку ви захоплювали, і шукайте шукати, і замініть просто !NEW_ID!
:
const str = 'name="some_text_0_some_text"';
console.log(
str.replace(/(?<=name="\w+)\d+(?=\w+")/, '!NEW_ID!')
);
При цьому методі повна відповідність - це лише та частина, яку потрібно замінити.
(?<=name="\w+)
- Lookbehind name"
, за яким слід слова символів (на щастя, lookbehinds не повинні фіксувати ширину в Javascript!)
\d+
- Збіг однієї чи кількох цифр - єдина частина шаблону, що не знаходиться навколо, єдина частина рядка, яка буде в отриманому збігу
(?=\w+")
- Шукати символів слова з наступним символом "
`
Майте на увазі, що погляд позаду досить новий. Він працює в сучасних версіях V8 (включаючи Chrome, Opera та Node), але не в більшості інших середовищ , принаймні, поки що. Отже, хоча ви можете надійно використовувати перспективу в Node та у власному браузері (якщо він працює на сучасній версії V8), він ще недостатньо підтримується випадковими клієнтами (наприклад, на загальнодоступному веб-сайті).