How to remove leading and trailing white spaces from a given html string?

How to remove leading and trailing white spaces from a given html string?

I have the following html string. What would be sample code in JavaScript to remove leading and trailing white spaces from this string?

  

 

Trimming using JavaScript

all leading and trailing white spaces

  

 

Solutions/Answers:

Solution 1:

See the String method trim()https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim

var myString = '  bunch    of <br> string data with<p>trailing</p> and leading space   ';
myString = myString.trim();
// or myString = String.trim(myString);

Edit

As noted in other comments, it is possible to use the regex approach. The trim method is effectively just an alias for a regex:

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

… this will inject the method into the native prototype for those browsers who are still swimming in the shallow end of the pool.

Solution 2:

var str = "  my awesome string   "
str.trim();    

for old browsers, use regex

str = str.replace(/^[ ]+|[ ]+$/g,'')
//str = "my awesome string" 

Solution 3:

string.replace(/^\s+|\s+$/g, "");

Solution 4:

If you’re working with a multiline string, like a code file:

<html>
    <title>test</title>
    <body>
        <h1>test</h1>
    </body>
</html>

And want to replace all leading lines, to get this result:

Related:  Couldn't find file 'jquery-ui'
<html>
<title>test</title>
<body>
<h1>test</h1>
</body>
</html>

You must add the multiline flag to your regex, ^ and $ match line by line:

string.replace(/^\s+|\s+$/gm, '');

Relevant quote from docs:

The “m” flag indicates that a multiline input string should be treated as multiple lines. For example, if “m” is used, “^” and “$” change from matching at only the start or end of the entire string to the start or end of any line within the string.

Solution 5:

I know this is a very old question but it still doesn’t have an accepted answer. I see that you want the following removed: html tags that are “empty” and white spaces based on an html string.

I have come up with a solution based on your comment for the output you are looking for:

Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces 
var str = "<p>&nbsp;&nbsp;</p><div>&nbsp;</div>Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces<p>&nbsp;&nbsp;</p><div>&nbsp;</div>";
console.log(str.trim().replace(/&nbsp;/g, '').replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));

.trim() removes leading and trailing whitespace

Related:  How do I create dynamic variable names inside a loop?

.replace(/&nbsp;/g, '') removes &nbsp;

.replace(/<[^\/>][^>]*><\/[^>]+>/g, "")); removes empty tags

Solution 6:

var trim = your_string.replace(/^\s+|\s+$/g, '');