如何从给定的html字符串中删除前导和尾随空格?

时间:2012-04-05 16:04:08

标签: javascript removing-whitespace

我有以下html字符串。 JavaScript中的示例代码是什么,用于从此字符串中删除前导和尾随空格?

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

7 个答案:

答案 0 :(得分:231)

请参阅字符串方法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);

修改

如其他评论中所述,可以使用正则表达式方法。 trim方法实际上只是正则表达式的别名:

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

...这会将方法注入原始原型,适用于那些仍然在游泳池浅水区游泳的浏览器。

答案 1 :(得分:60)

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

对于旧浏览器,请使用正则表达式

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

答案 2 :(得分:11)

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

答案 3 :(得分:6)

如果您正在使用多行字符串,例如代码文件:

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

想要替换所有前导线,以获得此结果:

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

您必须逐行将multiline标记添加到正则表达式,^$匹配项中:

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

相关引用from docs

  

&#34; m&#34; flag表示多行输入字符串应被视为多行。例如,如果&#34; m&#34;使用,&#34; ^&#34;和&#34; $&#34;仅从整个字符串的开头或结尾处的匹配更改为字符串中任何行的开头或结尾。

答案 4 :(得分:4)

我知道这是一个非常古老的问题,但它仍然没有得到公认的答案。我看到你想删除以下内容:html标签是&#34;空&#34;基于html字符串的白色空格。

我根据您对所需输出的评论提出了一个解决方案:

Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces 

&#13;
&#13;
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, ""));
&#13;
&#13;
&#13;

.trim()删除了前导和尾随空格

.replace(/&nbsp;/g, '')删除&nbsp;

.replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));删除空标记

答案 5 :(得分:3)

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

答案 6 :(得分:2)

01)。如果您只需要删除开头和结尾的空格,请使用以下方法:

var address = "  No.255 Colombo  "
address.replace(/^[ ]+|[ ]+$/g,'');

这将返回字符串“ No.255 Colombo”

02)。如果您需要删除所有空白,请使用以下方法:

var address = "  No.255 Colombo  "
address.replace(/\s/g,"");

这将返回字符串“ No.255Colombo”