如何从给定的HTMLstring中删除前导和尾随的空格?

我有以下的HTMLstring。 JavaScript中的示例代码将从这个string中删除前导空格和尾部空格?

<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> 

查看String方法trim()https://developer.mozilla.org/zh/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); 

编辑

正如其他评论所指出的那样,可以使用正则expression式的方法。 trim方法实际上只是一个正则expression式的别名:

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

…这将会把这个方法注入那些仍然在游泳池浅水区游泳的浏览器的原生原型。

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

对于旧的浏览器,使用正则expression式

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

如果您正在处理多行string,如代码文件:

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

并且想要replace所有的引导线,得到这个结果:

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

您必须将multiline标志添加到您的正则expression式, ^$匹配逐行:

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

来自文档的相关引用:

“m”标志表示多行inputstring应被视为多行。 例如,如果使用“m”,则“^”和“$”从仅匹配整个string的开头或结尾到string中任何行的开头或结尾。

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