2009-07-07 17 views
10

मैं इस समस्या पर एक ठोस जोड़े के घंटों के लिए जा रहा हूं और शून्य भाग्य प्राप्त कर रहा हूं। कोई सुराग नहीं कि यह कैसे संभव है; मैं सारांशित करने की कोशिश करूंगा।विट के अंत में ... जावास्क्रिप्ट ' n' को प्रतिस्थापित नहीं करेगा!

मैं डीबी में नई सामग्री डालने के लिए TinyMCE का उपयोग कर रहा हूं, उस सामग्री को डीबी में डालने के बाद AJAX प्रतिक्रिया के रूप में वापस भेजा जा रहा है और फिर पृष्ठ पर दिखाया गया है, कुछ पुरानी सामग्री को प्रतिस्थापित कर रहा है। यह सब समस्या के लिए वास्तव में प्रासंगिक नहीं है (जहां तक ​​मैं बता सकता हूं), लेकिन यह समस्या की पृष्ठभूमि के रूप में कार्य करता है।

किसी भी तरह, प्रतिक्रिया टेक्स्ट में '\ n' उचित रूप से जहां भी सामग्री टूट जाती है, वहां \ n 'है। मैं अपने जीवन के लिए उन लानत \ n 'को दूर नहीं कर सकता। मैंने एक दर्जन रेगेक्स/शून्य भाग्य के साथ combos को प्रतिस्थापित करने की कोशिश की है। मैंने सत्यापित किया है कि मैं अपना दिमाग खो नहीं रहा हूं और यह कोड आमतौर पर उस स्ट्रिंग के भीतर दूसरे शब्दों को प्रतिस्थापित करने का प्रयास करके काम करता है और यह पूरी तरह से ठीक काम करता है - यह सिर्फ '\ n' को प्रतिस्थापित नहीं करेगा। यहां कुछ कोड है जिसका उपयोग मैंने '\ n's:

प्रतिसाद टेक्स्ट = प्रतिक्रियाText.replace (/ \ r | \ n | \ r \ n/g, "") को प्रतिस्थापित करने का प्रयास किया है;

प्रतिक्रिया टेक्स्ट = प्रतिक्रियाText.replace (ऐरे ("\ r", "\ n", "\ f", "\ r \ n", "\ n"), "");

उनमें से नीदर चर के लिए कुछ भी करते हैं। परिवर्तनों की जांच के तुरंत बाद मैं इसे सतर्क करता हूं, नादा। मुझे कोई जानकारी नहीं है कि इससे मदद मिलेगी, लेकिन यहां एक उदाहरण का एक स्निपेट है '\ n' कॉपी-पेस्ट जो गायब नहीं होगा या बदल जाएगा।

High School transcript</li>\n<li>SAT/ACT 

एक तरफ ध्यान दें के रूप में, मैं PHP के माध्यम से ऐसा करने की कोशिश की किया है इससे पहले कि responseText एक समान के साथ जावास्क्रिप्ट को वापस भेज दिया जाता है & regex की जगह और यह या तो काम नहीं करता है।

+0

अतिरिक्त नोट: विशेष वर्णों (यानी '\ n',' \ r', आदि) से निपटने पर आप आम तौर पर एकल उद्धरण '\ n'',' 'r'' का उपयोग करना चाहते हैं, क्योंकि अधिकांश के लिए उद्देश्यों, आप एक स्ट्रिंग के बजाय एक एकल चरित्र की तलाश में हैं। –

+0

@ डेविडस्टर्की - जावास्क्रिप्ट में सिंगल और डबल कोट्स के बीच कोई अंतर नहीं है। टीम की स्टाइल गाइड या व्यक्तिगत सम्मेलन मार्गदर्शक सिद्धांत होना चाहिए http://stackoverflow.com/questions/3149192/difference-between-single-quotes-and-double-quotes-in-javascript – rinogo

उत्तर

24

क्या आप वाकई एक नई लाइन है और शाब्दिक नहीं है "\ n" (यह एक बच निकली नई लाइन है)?

ऐसा करें: (डबल बैकस्लैश ध्यान दें)

responseText = responseText.replace(/\\n/g, ""); 
+1

शानदार। मुझे एक देय है। यह स्थिति के बारे में सोचने के बाद काम किया और सही समझ में आता है। वह आदमी जो बढ़ रहा था ... चीयर्स! –

3
responseText = responseText.replace(/\n/g, ""); 

/जी झंडा वरना केवल पहले बदल दिया जाएगा उपयोग करने के लिए मत भूलना!

+0

काम नहीं करता है, और वस्तुतः वही है जैसा मैंने कोशिश की: प्रतिक्रिया पाठ = प्रतिक्रियाText.replace (/ \ r | \ n | \ r \ n/g, ""); हाँ? –

+0

अच्छी तरह से आपने कहा था कि "प्रतिक्रिया पाठ में \ n 'उचित रूप से जहां भी सामग्री लाइन टूट जाती है", मैंने लाइन ब्रेक को हटाने के साथ कोशिश की और यह लाइन ब्रेक को हटा दिया। –

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