Artık Javascript'in ( ES2018'den itibaren ) geriye baktığına göre , daha yeni ortamlarda, bu gibi durumlarda gruplardan tamamen kaçınabilirsiniz. Aksine örnek olarak geriye dönük sen yakalama edildi grubun önce gelir ve lookahead için sonra gelir ve ile değiştirin ne için sadece !NEW_ID!
:
const str = 'name="some_text_0_some_text"';
console.log(
str.replace(/(?<=name="\w+)\d+(?=\w+")/, '!NEW_ID!')
);
Bu yöntemle, tam eşleme yalnızca değiştirilmesi gereken bölümdür.
(?<=name="\w+)
- Sonradan name"
kelime karakterleri (Neyse ki, geriye bakışların Javascript'te sabit genişliğe sahip olması gerekmez!)
\d+
- Bir veya daha fazla basamağı eşleştirin - desenin bir arama alanında olmayan tek kısmı, dizenin elde edilen eşleşmede bulunacak tek kısmı
(?=\w+")
- Kelime karakterleri ve ardından "
`
Gözünüzün oldukça yeni olduğunu unutmayın. V8'in modern sürümlerinde (Chrome, Opera ve Node dahil) çalışır, ancak en azından henüz diğer ortamlarda çalışmaz. Bu nedenle, Nob'da ve kendi tarayıcınızda (V8'in modern bir sürümünde çalışıyorsa) lookbehind'i güvenilir bir şekilde kullanabilmenize rağmen, henüz rastgele istemciler (genel bir web sitesinde olduğu gibi) tarafından yeterince desteklenmemektedir.