2016-03-06 3 views
5

के साथ एक अवधि बदलें मुझे कुछ कोड में समस्या है। मैंने पैराग्राफ में इनपुट और टेक्स्ट डाला है <mark> का उपयोग करके हाइलाइट किया गया है। लेकिन जब मैं सभी अवधि को हाइलाइट करने के लिए एक अवधि जोड़ता हूं, तो कोड बाहर निकलता है और मुझे वास्तविक HTML कोड देता है और इसमें यादृच्छिक हाइलाइट होते हैं। तो मैंने अवधि को बदलने के लिए एक प्रतिस्थापन जोड़ने की कोशिश की। अब यह फिक्र नहीं होगा लेकिन कुछ भी हाइलाइट नहीं करेगा।एचटीएमएल चरित्र

var i = document.getElementById("Bar").value; 
var inpu = $.trim(i); 
var inp = inpu.replace(".", "&#46;"); 
var SearchReq = new RegExp("(\\b" + inp + "\\b)", "gim"); 
var Notes = document.getElementById("NoteHolder").innerHTML; 
var after = Notes.replace(SearchReq, "<mark class=" + ColorOptionReady + ">$1</mark>"); 
document.getElementById("NoteHolder").innerHTML = after; 

कोड के साथ समस्या क्या है: यहाँ मेरी कोड एचटीएमएल चरित्र संख्या (&#46;) के साथ अवधि को बदलने के लिए प्रयास करने के लिए है? (मैं regex में "\ ख" को दूर करने की कोशिश की लेकिन वह इसे ठीक नहीं किया।)

+1

अपनी रेगेक्स 'सर्च रिक' बनाने के दौरान आपको उन अक्षरों से बचने की आवश्यकता है जिनके पास रेगेक्स के भीतर विशेष अर्थ है। इसलिए इसमें अवधि, कोष्ठक, स्क्वायर ब्रैकेट इत्यादि शामिल हैं। उन्हें HTML इकाइयों के साथ बदलने से मदद नहीं मिलेगी, क्योंकि आपके अनुच्छेद तत्व के HTML में HTML इकाइयां शामिल नहीं हैं। – nnnnnn

उत्तर

5

बदलें .\\. करने के लिए (यह बच, \\ बैकस्लैश बैकस्लैश रखने के लिए जब आप रेगुलर एक्सप्रेशन को स्ट्रिंग से होकर गुजरेगा आवश्यक):

var inp = inpu.replace(".", "\\."); 

आपकी त्रुटि का कारण यह है कि . वह चरित्र है जिसका रेगएक्सपी में विशेष अर्थ है, इसलिए आपको RefExp से पहले इसे बचाना होगा।

अधिक जानकारी के लिए Special characters meaning in regular expressions देखें।

अच्छी किस्मत)!

+1

आपको स्ट्रिंग अक्षर में भी बैकस्लैश से बचने की आवश्यकता होगी। "\\।" – nnnnnn

+0

@nnnnnn मुझे क्यों चाहिए "\\।" बस "\" के बजाय? साथ ही, मैं "\" के साथ कैसे करूं क्योंकि यह उद्धरण से बच निकलता है और प्रतिस्थापन को गड़बड़ कर देगा? – Hawkeye

+0

अगर मैं अभी टाइप करता हूं तो यह अभी भी गड़बड़ हो जाता है। – Hawkeye

संबंधित मुद्दे