अब जब कि जावास्क्रिप्ट (के रूप में lookbehind है ES2018 ), नए वातावरण पर, आप समूहों पूरी तरह से इस तरह की स्थितियों में बच सकते हैं। इसके बजाय, जिस समूह को आप कैप्चर कर रहे थे, उससे पहले जो दिख रहा है, उसके लिए खोजबीन करें, और उसके बाद मिलने वाला लुकहैड, और बस के साथ बदलें !NEW_ID!:
const str = 'name="some_text_0_some_text"';
console.log(
str.replace(/(?<=name="\w+)\d+(?=\w+")/, '!NEW_ID!')
);
इस पद्धति के साथ, पूरा मैच केवल एक हिस्सा है जिसे प्रतिस्थापित करने की आवश्यकता है।
(?<=name="\w+)- name"शब्द वर्णों के लिए खोज की जाती है , (सौभाग्य से, लुकहाइंड को जावास्क्रिप्ट में निश्चित चौड़ाई नहीं होती है!)
\d+ - एक या अधिक अंकों का मिलान करें - पैटर्न का एकमात्र भाग एक नज़र में नहीं, स्ट्रिंग का एकमात्र हिस्सा जो परिणामी मैच में होगा
(?=\w+")- शब्द वर्णों के लिए लुकहेड उसके बाद "
`
ध्यान रखें कि देखने के लिए बहुत नया है। यह V8 (क्रोम, ओपेरा और नोड सहित) के आधुनिक संस्करणों में काम करता है, लेकिन अधिकांश अन्य वातावरणों में नहीं, कम से कम अभी तक नहीं। तो जब तक आप मज़बूती से नोड में और अपने स्वयं के ब्राउज़र में उपयोग कर सकते हैं (यदि यह V8 के आधुनिक संस्करण पर चलता है), तो यह अभी तक यादृच्छिक ग्राहकों (एक सार्वजनिक वेबसाइट पर) द्वारा पर्याप्त रूप से समर्थित नहीं है।