2010-10-06 12 views
14

मैं स्ट्रिंग में सफेद रिक्त स्थान कैसे हटा सकता हूं लेकिन जावास्क्रिप्ट में नया लाइन वर्ण नहीं। मुझे \t  का उपयोग करके सी # के लिए एक समाधान मिला, लेकिन यह जावास्क्रिप्ट में समर्थित नहीं है।क्या न्यूलाइन को छोड़कर सभी व्हाइटस्पेस को हटाने के लिए कोई जावास्क्रिप्ट नियमित अभिव्यक्ति है?

इसे और अधिक स्पष्ट करने के लिए यहां एक उदाहरण है:

var s = "this\n is a\n te st" 

regexp पद्धति का उपयोग करके मैं इसे

"this\nisa\ntest" 
+0

क्या आप हमें अपना सी # समाधान दिखा सकते हैं? सबसे आम सी # नियमित अभिव्यक्तियों को जावास्क्रिप्ट में ठीक काम करना चाहिए ('t t' सहित)। –

उत्तर

7

थी एस \t पर भी काम करेगा।

var newstr = s.replace(/ +?/g, ''); 
+4

+ या? की आवश्यकता नहीं है, बस s.replace (//g, '') पर्याप्त होगा। मैं व्यक्तिगत रूप से इस तथ्य को पसंद नहीं करता कि// g टैब से मेल खाता है क्योंकि यह मेरे लिए "अंतरिक्ष चरित्र से मेल खाता है" के रूप में पढ़ता है।/[\ t \ r]/g रिक्त स्थान, टैब और वर्ण रिटर्न से मेल खाता है और इसके इरादे में अधिक पठनीय है। – tKe

+0

यह टैब पर काम नहीं करना चाहिए। –

+0

@ मैथ्यू, परीक्षण किया गया। यह है। – Ruel

2

वापस जाने के लिए इस

var trimmedString = orgString.replace(/^\s+|\s+$/g, '') ; 
+0

आप इसे बिना नियमित अभिव्यक्ति के भी कर सकते हैं, orgString.split ('') .join (''); –

+2

'विभाजन ('') 'केवल रिक्त स्थान हटाता है, न कि टैब या अन्य सफेद जगह। –

+0

विभाजित और शामिल मेरे उद्देश्य परोसता है, लेकिन पहला व्यक्ति काम नहीं कर रहा है !! जैसे var s = "यह \ n एक te st है" regexp विधि का उपयोग करके मैं इसे "यह \ nisatest" वापस करने की उम्मीद करता हूं क्या यह इस तरह से काम करने का अनुमान नहीं है !! – sat

0

इस '/^\\s*/'

कोशिश की कोशिश करो उम्मीद
9

हालांकि जावास्क्रिप्ट / /g मैच \t करता है, मैं इसे मूल उद्देश्य छिपा कर सकते हैं के रूप में यह अंतरिक्ष चरित्र के लिए एक मैच के रूप में पढ़ता पाते हैं। विकल्प \n को छोड़कर, व्हाइटस्पेस वर्णों को स्पष्ट रूप से सूचीबद्ध करने वाले चरित्र संग्रह का उपयोग करना होगा। यानी /[ \t\r]+/g

var newString = s.replace(/[ \t\r]+/g,""); 
2

आप हर खाली स्थान के चरित्र है कि नई-पंक्तियों के अलावा \s मैचों, तो आप इस इस्तेमाल कर सकते हैं मैच के लिए करना चाहते हैं:

/[\t\v\f\r \u00a0\u2000-\u200b\u2028-\u2029\u3000]+/g 

ध्यान दें कि यह कैरिएज रिटर्न निकाल देंगे (\r), इसलिए यदि इनपुट शामिल \r\n जोड़े, वे केवल \n में परिवर्तित हो जाएंगे। यदि आप कैरिज रिटर्न को सुरक्षित रखना चाहते हैं, तो नियमित अभिव्यक्ति से \r हटा दें।

0

यह काम कर देता है:

str.replace(/ /g, "") 

और अंतरिक्ष टैब या लाइनब्रेक (CHROME45), कोई प्लस या questionmark जब विश्व स्तर पर जगह की जरूरत है से मेल नहीं खाता।

पर्ल में आपके पास "क्षैतिज सफेद जगह" shorthand \ h लाइनब्रेक्स और रिक्त स्थान के बीच destinguish करने के लिए है लेकिन दुर्भाग्य से जावास्क्रिप्ट में नहीं है।

दूसरी तरफ \ t shorthand जावास्क्रिप्ट में समर्थित है, लेकिन यह केवल टैबलेट का वर्णन करता है।

0
[^\S\r\n]+ 

नहीं गैर -whitespace चार, नहीं \r और \n नहीं; एक या अधिक उदाहरण

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