मैं जावास्क्रिप्ट का उपयोग HTML पृष्ठ में एक स्ट्रिंग की जगह है, लेकिन उपेक्षा यह है, अगर यह एक HTML टैग में है, उदाहरण के लिए करना चाहते हैं:Regex स्ट्रिंग की जगह नहीं बल्कि अंदर HTML टैग
<a href="google.com">visit google search engine</a>
you can search on google tatatata...
मैं द्वारा google
बदलना चाहते हैं <b>google</b>
, लेकिन यहाँ नहीं:
<a href="google.com">visit google search engine</a>
you can search on <b>google</b> tatatata...
मैं इस एक के साथ करने की कोशिश की:
regex = new RegExp(">([^<]*)?(google)([^>]*)?<", 'i');
el.innerHTML = el.innerHTML.replace(regex,'>$1<b>$2</b>$3<');
लेकिन समस्या यह है:
<a href="google.com">visit <b>google</b> search engine</a>
you can search on <b>google</b> tatatata...
इसे कैसे ठीक कर सकते हैं: मैं <b>google</b>
<a>
टैग के अंदर मिल गया?
मैं सहमत हूं। स्ट्रिंग वाले डीओएम में सभी टेक्स्ट नोड्स पाएं। उन टैग्स की एक ब्लैकलिस्ट रखें जिन्हें आप ** स्ट्रिंग को प्रतिस्थापित नहीं करना चाहते हैं। जांचें कि टेक्स्ट नोड इन टैगों में से किसी एक के अंदर है या नहीं। यदि नहीं, तो अपना प्रतिस्थापन करें, अन्यथा इसे छोड़ दें। – tvanfosson