I needed to trim a string and also replace more than one spaces with a single space. The solution was simple with String.replace in JavaScript. Here's the code: Code: var m = " My name is Pradeep "; m = m.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' '); Making a function out of it. Code: function trim(str) { if(!str || typeof str != 'string') return null; return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' '); }
Good use of regular expressions, we wish there was a simpler method like vbscript where in we can just use the function trim.
Hi Pradeep, Nice solution. Although it could be extended nicely so it works natively in Javascript. JS provides a way to create prototype functions easily. Here is the code: Code: String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } This method can be called like any in-built javascript function - string.trim() instead of trim(string)!
Use the code below to make trim a method of all Strings. These are useful to place in a global Javascript file included by all your pages. Code: 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+$/,""); } // example of using trim, ltrim, and rtrim var myString = " hello my name is "; alert("*"+myString.trim()+"*"); alert("*"+myString.ltrim()+"*"); alert("*"+myString.rtrim()+"*"); Javascript Trim Stand-Alone Functions:-If you prefer not to modify the string prototype, then you can use the stand-alone functions below. Code: function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g,""); } function ltrim(stringToTrim) { return stringToTrim.replace(/^\s+/,""); } function rtrim(stringToTrim) { return stringToTrim.replace(/\s+$/,""); } // example of using trim, ltrim, and rtrim var myString = " hello my name is "; alert("*"+trim(myString)+"*"); alert("*"+ltrim(myString)+"*"); alert("*"+rtrim(myString)+"*");
it works fine for me both ways. the most important thing is that there is a way of doing this without pretty much effort at all.