दिलचस्प पोस्ट
मैं GitHub पर कमिट कैसे निकाल सकता हूं? ऐमियम का उपयोग कब करना है, और उन्हें स्थैतिक सदस्यों वाले वर्ग के साथ कब बदलना है? जावास्क्रिप्ट के साथ एकाधिक बायां-हाथ असाइनमेंट एकाधिक कुंजी का उपयोग कर जावा ऑब्जेक्ट सॉर्ट करना जावा: क्लास.इस इन्स्टैन्स बनाम क्लास.इस एसेग्नेबल जावा में एक ज़िप फ़ाइल कैसे बनाएं सी प्रीप्रोसेसर से एक संदेश को प्रिंट करने का एक पोर्टेबल तरीका है? मार्कडाउन में टिप्पणियाँ एक मजबूत, resizable स्विंग शतरंज जीयूआई बनाना एंड्रॉइड: फास्ट बिटमैप कलंक? एसवीजी और एचटीएमएल 5 कैनवास के बीच अंतर क्या है? जे.एस.ओ.ओ. पोस्ट अनुरोध में जाओ कैसे एक git एक हटाए जाने के लिए और एक फ़ाइल चाल के रूप में एक नई फ़ाइल को चिह्नित करने के लिए? एचटीएमएल पेज को लंगर के लिए कैसे स्क्रॉल करें? अजगर शब्दकोश को डुप्लिकेट सूची

जावास्क्रिप्ट में ट्रिम स्ट्रिंग?

मैं जावास्क्रिप्ट में एक स्ट्रिंग कैसे ट्रिम कर सकता हूं?

Solutions Collecting From Web of "जावास्क्रिप्ट में ट्रिम स्ट्रिंग?"

चूंकि नए ब्राउज़र्स (IE9 +) पहले से ही लागू किए गए हैं, आपको केवल trim() लागू करना चाहिए यदि यह प्रोटोटाइप ऑब्जेक्ट पर उपलब्ध नहीं है (ओवरराइडिंग यह एक बड़ा प्रदर्शन हिट है)। मूल वस्तुएं बढ़ाते समय यह सामान्यतः अनुशंसित होता है! ध्यान दें कि जब तक आप Object.defineProperty उपयोग नहीं करते हैं, जोड़ा संपत्ति Object.defineProperty !

उन ब्राउज़रों के लिए जो trim() समर्थन नहीं करता, आप इस polyfill को MDN से उपयोग कर सकते हैं:

 if (!String.prototype.trim) { (function() { // Make sure we trim BOM and NBSP var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; String.prototype.trim = function() { return this.replace(rtrim, ''); }; })(); } 

यह देखो:

 String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');}; String.prototype.ltrim=function(){return this.replace(/^\s+/,'');}; String.prototype.rtrim=function(){return this.replace(/\s+$/,'');}; String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');}; 

JQuery से ट्रिम सुविधाजनक है यदि आप पहले से ही उस फ्रेमवर्क का उपयोग कर रहे हैं।

 $.trim(' your string '); 

मैं अक्सर jQuery का उपयोग करने के लिए करते हैं, इसलिए स्ट्रिंग को छूने के लिए मेरे लिए यह स्वाभाविक है लेकिन यह संभव है कि वहाँ jQuery के खिलाफ बैकैश है? 🙂

यद्यपि उपर्युक्त सही उत्तरों का एक गुच्छा है, यह ध्यान दिया जाना चाहिए कि जावास्क्रिप्ट में String ऑब्जेक्ट एक देशी है। ECMAScript 5 के रूप में। इस प्रकार आदर्श रूप से ट्रिम पद्धति का प्रोटोटाइप करने का कोई भी प्रयास वास्तव में देखना चाहिए कि यह पहले से मौजूद है या नहीं।

 if(!String.prototype.trim){ String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,''); }; } 

में मूल रूप से जोड़े गए: जावास्क्रिप्ट 1.8.1 / ईसीएमस्क्रिप्ट 5

इस प्रकार में समर्थित:

फ़ायरफ़ॉक्स: 3.5+

सफारी: 5+

इंटरनेट एक्सप्लोरर: IE9 + (केवल मानक मोड में!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-e9-ecascript-5-support- और- अधिक .aspx

क्रोम: 5+

ओपेरा: 10.5+

ECMAScript 5 समर्थन तालिका: http://kangax.github.com/es5-compat-table/

वहाँ बहुत सारे लागूकरण हैं जिनका इस्तेमाल किया जा सकता है सबसे स्पष्ट लगता है कि ऐसा कुछ है:

 String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; " foo bar ".trim(); // "foo bar" 

यहां सरल संस्करण जावास्क्रिप्ट ट्रिम के लिए सामान्य फ़ंक्शन क्या है?

 function trim(str) { return str.replace(/^\s+|\s+$/g,""); } 

मुझे पता है कि इस सवाल को तीन साल पहले पूछा गया है। अब, String.trim() को मूल रूप से जावास्क्रिप्ट में जोड़ा गया था। उदाहरण के लिए, आप सीधे निम्नलिखित के रूप में ट्रिम कर सकते हैं,

 document.getElementById("id").value.trim(); 

बग़ैर बेंस्सेरी में बेंचमार्क सूचना के साथ 11 अलग-अलग ट्रिम्स हैं:

http://blog.stevenlevithan.com/archives/faster-trim-javascript

गैर आश्चर्यजनक रूप से regexp- आधारित पारंपरिक पाश से धीमी हैं।


यह मेरा व्यक्तिगत एक है यह कोड पुराना है! मैंने इसे जावास्क्रिप्ट .1.1 और नेटस्केप 3 के लिए लिखा था और यह केवल बाद से थोड़ा अपडेट किया गया है। (मूल String.charAt इस्तेमाल किया)

 /** * Trim string. Actually trims all control characters. * Ignores fancy Unicode spaces. Forces to string. */ function trim(str) { str = str.toString(); var begin = 0; var end = str.length - 1; while (begin <= end && str.charCodeAt(begin) < 33) { ++begin; } while (end > begin && str.charCodeAt(end) < 33) { --end; } return str.substr(begin, end - begin + 1); } 

यदि आप jQuery के उपयोग jQuery.trim() फ़ंक्शन का उपयोग कर रहे हैं। उदाहरण के लिए, if( jQuery.trim(StringVariable) == '')

मूल जावास्क्रिप्ट विधियों का प्रयोग करें: String.trimLeft() , String.trimRight() , और String.trim()

String.trim() IE9 + और अन्य सभी प्रमुख ब्राउज़रों में समर्थित है :

 ' Hello '.trim() //-> 'Hello' 

String.trimLeft() और String.trimRight() गैर-मानक हैं, लेकिन IE को छोड़कर सभी प्रमुख ब्राउज़रों में समर्थित हैं

 ' Hello '.trimLeft() //-> 'Hello ' ' Hello '.trimRight() //-> ' Hello' 

IE समर्थन एक polyfill के साथ आसान है हालांकि:

 if (!''.trimLeft) { String.prototype.trimLeft = function() { return this.replace(/^\s+/,''); }; String.prototype.trimRight = function() { return this.replace(/\s+$/,''); }; if (!''.trim) { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }; } } 

अब दिन आप string.trim () का उपयोग कर सकते हैं जो मूल जावास्क्रिप्ट कार्यान्वयन है

 var orig = " foo "; console.log(orig.trim());//foo 

यह भी देखें

  • trimLeft ()
  • trimRight ()
 String.prototype.trim = String.prototype.trim || function () { return this.replace(/^\s+|\s+$/g, ""); }; String.prototype.trimLeft = String.prototype.trimLeft || function () { return this.replace(/^\s+/, ""); }; String.prototype.trimRight = String.prototype.trimRight || function () { return this.replace(/\s+$/, ""); }; String.prototype.trimFull = String.prototype.trimFull || function () { return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "").replace(/\s+/g, " "); }; 

मैट डेरेग्रेज से बेईमानी से चुरा लिया

कोण जेएस प्रोजेक्ट से ट्रिम कोड

 var trim = (function() { // if a reference is a `String`. function isString(value){ return typeof value == 'string'; } // native trim is way faster: http://jsperf.com/angular-trim-test // but IE doesn't have it... :-( // TODO: we should move this into IE/ES5 polyfill if (!String.prototype.trim) { return function(value) { return isString(value) ? value.replace(/^\s*/, '').replace(/\s*$/, '') : value; }; } return function(value) { return isString(value) ? value.trim() : value; }; })(); 

और इसे trim(" hello ") रूप में कॉल करें

यहां एक बहुत आसान तरीका है:

 function removeSpaces(string){ return string.split(' ').join(''); } 

आप केवल अपने चर को स्ट्रिंग के रूप में घोषित कर सकते हैं और इसकी ट्रिम फ़ंक्शन का उपयोग कर सकते हैं:

 var str = new String('my string'); str= str.trim(); 

बस कोड का उपयोग करें

 var str = " Hello World! "; alert(str.trim()); 

ब्राउज़र समर्थन

 Feature Chrome Firefox Internet Explorer Opera Safari Edge Basic support (Yes) 3.5 9 10.5 5 ? 

पुराने ब्राउज़र को प्रोटोटाइप जोड़ें

 if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; } 

आज, बहुत ज्यादा हर ब्राउज़र String.prototype.trim() का समर्थन करता है।

आप इसे इस तरह प्रयोग करते हैं:

 var origStr = ' foo '; var newStr = origStr.trim(); // Value of newStr becomes 'foo' 

यदि आपको अभी भी एक प्राचीन ब्राउज़र का समर्थन करने की आवश्यकता हो सकती है जो इस सुविधा का समर्थन नहीं करता है, तो यह एमडीएन द्वारा सुझाई जाने वाला एक पॉलीफिल है:

 if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; } 

मेरे पास एक ऐसी चीज है जो ट्रिम का उपयोग करती है तो निम्न कोड का उपयोग कर इसे हल।

 String.prototype.trim = String.prototype.trim || function(){ return jQuery.trim(this); }; 
 if(!String.prototype.trim){ String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/gm,''); }; } 

पिछले उत्तरों से, यह फ्लैग m जोड़ने में अलग है

फ्लैग m कई रैखिक के पाठ को खोजेगा। इस मोड में, पैटर्न के शुरुआती और अंत ( ^ $ ) को चिन्हांकित करने से पहले और बाद में नई पंक्ति ( \n ) डाली जाती है।

पता नहीं क्या कीड़े यहाँ छुपा सकते हैं, लेकिन मैं इसका उपयोग करता हूं:

 var some_string_with_extra_spaces=" goes here " console.log(some_string_with_extra_spaces.match(/\S.*\S|\S/)[0]) 

या यह, अगर पाठ में प्रवेश होता है:

 console.log(some_string_with_extra_spaces.match(/\S[\s\S]*\S|\S/)[0]) 

एक और प्रयास:

 console.log(some_string_with_extra_spaces.match(/^\s*(.*?)\s*$/)[1]) 

यहाँ टाइपस्क्रिप्ट में है:

 var trim: (input: string) => string = String.prototype.trim ? ((input: string) : string => { return (input || "").trim(); }) : ((input: string) : string => { return (input || "").replace(/^\s+|\s+$/g,""); }) 

मूल प्रोटोटीप उपलब्ध नहीं है, तो यह regex पर वापस आ जाएगा।

मैंने इस समारोह को ट्रिम के लिए लिखा था, जब। Trim () फ़ंक्शन जेएस में वापस 2008 में उपलब्ध नहीं था। कुछ पुराने ब्राउज़रों अभी भी। Trim () फ़ंक्शन का समर्थन नहीं करते हैं और मुझे उम्मीद है कि यह फ़ंक्शन किसी को मदद कर सकता है।

त्रिकोणीय कार्य

 function trim(str) { var startpatt = /^\s/; var endpatt = /\s$/; while(str.search(startpatt) == 0) str = str.substring(1, str.length); while(str.search(endpatt) == str.length-1) str = str.substring(0, str.length-1); return str; } 

स्पष्टीकरण : फ़ंक्शन ट्रिम () एक स्ट्रिंग ऑब्जेक्ट स्वीकार करते हैं और किसी भी प्रारंभिक और अनुगामी व्हाटस्पेस (रिक्त स्थान, टैब और न्यूलाइन) को निकालते हैं और ट्रिम किए गए स्ट्रिंग पर लौटें। भेजने के लिए वैध डेटा सुनिश्चित करने के लिए आप इस फ़ंक्शन को फॉर्म इनपुट ट्रिम करने के लिए उपयोग कर सकते हैं

फ़ंक्शन को एक उदाहरण के रूप में निम्नलिखित तरीके से कहा जा सकता है।

 form.elements[i].value = trim(form.elements[i].value); 

आप इसे सादे जावास्क्रिप्ट का उपयोग कर सकते हैं:

 function trimString(str, maxLen) { if (str.length <= maxLen) { return str; } var trimmed = str.substr(0, maxLen); return trimmed.substr(0, trimmed.lastIndexOf(' ')) + '…'; } // Let's test it sentenceOne = "too short"; sentencetwo = "more than the max length"; console.log(trimString(sentenceOne, 15)); console.log(trimString(sentencetwo, 15)); 

जावास्क्रिप्ट का उपयोग करते हुए स्ट्रिंग ट्रिम करने के लिए यहां दिए गए कुछ उदाहरण हैं।

मेरा एक एकल regex का उपयोग उन मामलों को देखने के लिए करता है जहां ट्रिमिंग आवश्यक है, और वांछित सबस्टिंग सीमा निर्धारित करने के लिए उस रीगेक्स के परिणामों का उपयोग करता है:

 var illmatch= /^(\s*)(?:.*?)(\s*)$/ function strip(me){ var match= illmatch.exec(me) if(match && (match[1].length || match[2].length)){ me= me.substring(match[1].length, p.length-match[2].length) } return me } 

एक डिज़ाइन निर्णय जो इस में गया था अंतिम कैप्चर करने के लिए एक सबस्ट्रिंग का उपयोग कर रहा था। s / \ ?: // (मध्यकाल कैप्चरिंग करें) और प्रतिस्थापन टुकड़ा बन जाता है:

  if(match && (match[1].length || match[3].length)){ me= match[2] } 

इन इम्प्लॉम्स में मैंने दो प्रदर्शन दांव लगाए हैं:

  1. उपस्ट्रिंग कार्यान्वयन मूल स्ट्रिंग के डेटा की प्रतिलिपि बनाता है? यदि हां, तो पहले, जब एक स्ट्रिंग को छंटनी की आवश्यकता होती है, तो दोहरा ट्रवर्सल होता है, पहले रेगेक्स में (जो कि आंशिक रूप से आंशिक रूप से हो सकता है), और दूसरे स्थानापन्न निष्कर्षण में। उम्मीद है कि एक उपपरिवर्तित कार्यान्वयन केवल मूल स्ट्रिंग का संदर्भ देता है, इसलिए ऑब्जेक्ट्स जैसे ऑपरेशन लगभग मुफ्त हो सकते हैं उम्मीद मत छोड़ो

  2. Regex implence में कब्जा कितना अच्छा है? मध्यम अवधि, आउटपुट मूल्य, संभवतः बहुत लंबा हो सकता है मैं बैंक के लिए तैयार नहीं था कि सभी regex implos 'कैप्चरिंग एक सौ सौ केबी इनपुट कैप्चर पर नहीं लगाएगा, लेकिन मैंने भी परीक्षण नहीं किया (बहुत सारे रनटाइम, माफी!)। दूसरा हमेशा कैप्चर करता है; यदि आपका इंजन हिट न लेते हुए ऐसा कर सकता है, तो संभवतः इसका उपयोग सुनिश्चित करें कि ऊपर की स्ट्रिंग-रोपिंग-तकनीकों का उपयोग करें।

IE9 + और अन्य ब्राउज़रों के लिए

 function trim(text) { return (text == null) ? '' : ''.trim.call(text); }