2011-08-07 4 views
9

मैं एक XML फ़ीड जावास्क्रिप्ट के माध्यम से खींच रहा है और कुछ और एचटीएमएल अनुकूल में अनुवाद im कि है, लेकिन im कैसे एक एचटीएमएल br टैगजावास्क्रिप्ट में <br /> एचटीएमएल टैग में कैरिज रिटर्न का अनुवाद करने का प्रयास कर रहे हैं?

में कैरिएज रिटर्न का अनुवाद करने पर पकड़ा मैं इस

text = text.replace('\r','<br />'); 
की तरह कुछ करने की कोशिश की

कोई फायदा नहीं हुआ ..

कोई विचार?

+3

क्या आपने '\ r' की बजाय' \ n' की कोशिश की है? – icktoofay

उत्तर

18

जावास्क्रिप्ट का प्रतिस्थापन फ़ंक्शन केवल पहले अवसर को प्रतिस्थापित करता है यदि आप मिलान मानदंड के रूप में स्ट्रिंग का उपयोग करते हैं। सभी को बदलने के लिए आप regex का उपयोग कर सकते हैं। इस

text = text.replace(/(\r\n|\n|\r)/g,"<br />"); 

आशा इस मदद करता है की तरह

कोशिश कुछ।

1

इस प्रयास करें:

text = text.replace(/\r\n|\r|\n/g, '<br />'); 
0

आप मैन्युअल फ़ीड पर एक नज़र रखना चाहिए। यह शायद \r से अधिक लाइन (ईओएल) प्रकार का उपयोग करता है।

ईओएल प्रकार की सभी घटनाओं को प्रतिस्थापित करने के लिए, आपको replace() फ़ंक्शन में रेगेक्स का उपयोग करने की आवश्यकता है। एक बार जब आप सही EOL प्रकार पाया है, इस तरह इसका इस्तेमाल:

text = text.replace(/<type here>/g, '<br />'); 

(बेशक आप अपने पाया EOL प्रकार के साथ <type here> प्रतिस्थापित करने की आवश्यकता

6

न्यू लाइन के बजाय कैरिएज रिटर्न वर्ण मैं वहाँ हो सकता है।। इस का प्रयोग करेंगे:

text = text.replace(/\r\n?|\n/g, '<br />'); 

जो एक <br /> साथ \r\n, \r, और \n के सभी उदाहरणों का स्थान ले लेगा, लेकिन साथ \r\n की जगह नहीं होगी दो ब्रेक, जो वांछित व्यवहार है।

13

तुम बस तत्व पर सीएसएस white-space:pre लागू हो सकते हैं, वास्तव में एचटीएमएल <textarea> तत्व की तरह आंतरिक रूप से कर रही है:

<span style="white-space:pre">your text \n will \n be \n on multiple \n lines</span> 

(ध्यान दें: एक वर्ग शैली की तुलना में अधिक सिफारिश की है, ऊपर सिर्फ एक उदाहरण है किकऑफ़)

+0

उत्कृष्ट सुझाव - वांछित प्रभाव प्राप्त करने के लिए मैंने "व्हाइट-स्पेस: प्री-लाइन" का उपयोग किया (रेफरी: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) –

+1

'white -स्पेस: प्री-लाइन' टिकट है यदि आप सिर्फ लाइनों को संरक्षित करना चाहते हैं, न कि अन्य सफेद जगह। – krock

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