2011-09-07 16 views
37

.replace फ़ंक्शन के साथ स्ट्रिंग में सभी कैरिज रिटर्न को प्रतिस्थापित करना संभव है? मुझे ऐसा करने के लिए कुछ जटिल कार्य मिल गए हैं, लेकिन यह सोच रहा था कि क्या इसे .replace के माध्यम से केवल एक रेगेक्स के साथ सरलीकृत किया जा सकता है?क्या सभी कैरिज रिटर्न को स्ट्रिंग में .replace के माध्यम से प्रतिस्थापित करना संभव है?

धन्यवाद!

उत्तर

9

यहाँ यह

str = str.replace(/\r/gm,'newChar'); 

कैसे करना है डिफ़ॉल्ट रूप से, जावास्क्रिप्ट replace() पहले घटना बदल देता है। इसके आसपास का तरीका रेगेक्स के रूप में पहले पैरामीटर सेट करना है।

+2

मैं नई लाइनों को
पर बदलने के लिए समान कार्य का उपयोग कर रहा हूं। लेकिन मैं नियमित अभिव्यक्ति के लिए \ n और \ r \ n भी जोड़ता हूं।/\ r \ n | \ r | \ n/g –

81

दोनों \ n (नई लाइन) और \ r (कैरिजिज रिटर्न) एक नई लाइन बनाते हैं। एक ही समय में दोनों के सभी उदाहरणों को बदलने के लिए:

s.replace(/[\n\r]/g, ''); 

नोट है कि आप उन्हें बजाय एक जगह कुछ भी नहीं के साथ बदलने के लिए चाहते हो सकता है।

+10

वह लानत '/ g' हमेशा मुझे प्राप्त करता है! किसने सोचा कि डिफ़ॉल्ट रूप से * पहली * घटना को प्रतिस्थापित करना एक अच्छा विचार था? – Tamlyn

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