दिलचस्प पोस्ट
एक्शन बार पर टेक्स्ट कैसे बदल सकता है एक सेवा से यूआई थ्रेड हैंडलर एक्सेस करना Graphics2D.drawString में नई लाइन के साथ समस्याएं लिनक्स ओओएम किलर द्वारा किस प्रक्रिया को मार डाला गया? एक सरणी में डुप्लिकेट ऑब्जेक्ट निकालें क्या एक Google App Engine ऐप में एक डिफ़ॉल्ट सेवा / मॉड्यूल फ़ोल्डर संरचना के संदर्भ में एक गैर-डिफ़ॉल्ट एक के भाई हो सकता है? एंड्रॉइड कस्टम कीबोर्ड बनाने के लिए कैसे? शैल स्क्रिप्ट एन दिन से पुराने निर्देशिका को हटाने के लिए ओएस में क्या होता है जब हम सी में एक नल सूचक को dereference? आईओएस प्रणाली अपटाइम प्राप्त करना, जो सोता है जब नहीं रोकता MYSQL एक सम्मिलित वक्तव्य में अधिकतम दिनांक चुनें मेरा Magento एक्सटेंशन इंस्टॉल स्क्रिप्ट रन नहीं होगा Google डॉक्स और Google ड्राइव में Google Apps MIME प्रकार क्या हैं? jquery अजाक्स तैयार की गई 0 responsetext स्थिति 0 statustext त्रुटि .NET प्रक्रिया मॉनिटर

बदलें विधि काम नहीं करता है

मैं स्मार्ट उद्धरणों को ' , ' , और नियमित कोट्स ' जैसे प्रतिस्थापित करना चाहता हूं। इसके अलावा, मैं © , ® और को बदलना चाहता था मैंने निम्नलिखित कोड का इस्तेमाल किया लेकिन यह मदद नहीं करता है कृपया मुझे इस मुद्दे को हल करने में सहायता करें।

 str.replace(/[“”]/g, '"'); str.replace(/['']/g, "'"); 

वेब के समाधान से एकत्रित समाधान "बदलें विधि काम नहीं करता है"

उपयोग:

 str = str.replace(/[“”]/g, '"'); str = str.replace(/['']/g, "'"); 

या एक बयान में ऐसा करने के लिए:

 str = str.replace(/[“”]/g, '"').replace(/['']/g,"'"); 

जावास्क्रिप्ट में (कई अन्य भाषाओं के रूप में) स्ट्रिंग अपरिवर्तनीय हैं – स्ट्रिंग "प्रतिस्थापन" तरीके वास्तव में जगह में स्ट्रिंग को संशोधित करने की बजाय नई स्ट्रिंग लौटाते हैं

replace राज्यों के लिए एमडीएन जावास्क्रिप्ट संदर्भ एंट्री :

प्रतिस्थापन द्वारा प्रतिस्थापित किए गए पैटर्न के कुछ या सभी मिलानों के साथ एक नई स्ट्रिंग देता है

यह विधि उस स्ट्रिंग ऑब्जेक्ट को बदलती नहीं है जिस पर इसे कहा जाता है। यह केवल एक नया स्ट्रिंग देता है

परिणामस्वरूप स्ट्रिंग लौटने की जगह

 str = str.replace(/["']/, ''); 

ओपी यह नहीं बताता कि वह काम क्यों नहीं कर रहा है, लेकिन फाइल के एन्कोडिंग से संबंधित समस्याएं हैं। अगर मेरे पास एएनएसआई एन्कोडेड फाइल है और मैं करता हूं:

 var s = "“This is a test” 'Another test'"; s = s.replace(/[“”]/g, '"').replace(/['']/g,"'"); document.writeln(s); 

मुझे मिला:

 "This is a test" "Another test" 

मैंने यूटीएफ -8 में एन्कोडिंग को परिवर्तित कर दिया, स्मार्ट कोट्स को तय किया (जब मैंने एन्कोडिंग बदल दिया) तो फिर एएनएसआई में परिवर्तित हो गया और समस्या दूर चली गई।

ध्यान दें कि जब मैंने इस पेज के दोहरे और एकल स्मार्ट उद्धरणों को कॉपी और चिपकाया तो मेरे परीक्षण दस्तावेज़ (एएनएसआई एन्कोडेड) में और यह कोड चलाया:

 var s = "“This is a test” 'Another test'"; for (var i = 0; i < s.length; i++) { document.writeln(s.charAt(i) + '=' + s.charCodeAt(i)); } 

मुझे पता चला कि सभी स्मार्ट उद्धरण के रूप में दिखाया ? = 63 ? = 63

इसलिए, ओपी से, यह निर्धारित करें कि स्मार्ट उद्धरण कहाँ से आरंभ हो रहे हैं और यह सुनिश्चित करें कि वे अक्षर कोड हैं, जिनसे आप अपेक्षा करते हैं यदि वे नहीं हैं, तो स्रोत के एन्कोडिंग को बदलने पर विचार करें ताकि वे “ = 8220 , ” = 8221 , ' = 8216 और ' = 8217 रूप में पहुंचें। स्रोत की जांच करने के लिए मेरी लूप का उपयोग करें, अगर मेरे द्वारा सूचीबद्ध किए गए अन्य charCodeAt() के अलावा स्मार्ट कोट्स किसी अन्य charCodeAt() मूल्यों के साथ दिख रहे हैं, तो replace() लिखित रूप से काम नहीं करेगा I

स्मार्ट उद्धरणों के साथ सभी नियमित उद्धरणों को बदलने के लिए, मैं एक समान फ़ंक्शन का उपयोग कर रहा हूं। आपको कुछ अलग कंप्यूटर / ब्राउजर डिफ़ॉल्ट सेटिंग्स के रूप में CharCode को निर्दिष्ट करना चाहिए सादे अक्षरों को अलग-अलग पहचान सकता है ("", ", ',')।

एआरसीआईआई वर्ण के साथ चारकोडा का उपयोग करके, जो विभिन्न ब्राउज़रों में त्रुटि के लिए कमरे को खत्म कर देगा, और ऑपरेटिंग सिस्टम। यह द्विभाषी उपयोग (लहजे, आदि) के लिए भी उपयोगी है।

सिंगल कोट्स के साथ स्मार्ट कोट्स को बदलने के लिए

 function unSmartQuotify(n){ var name = n; var apos = String.fromCharCode(39); while (n.indexOf("'") > -1) name = name.replace("'" , apos); return name; } 

अन्य एएससीआईआई मानों को ढूंढने के लिए आपको आवश्यकता हो सकती है यहां देखें