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

问题描述 投票:0回答:8

我有以下包含 HMTL 的字符串。 JavaScript 中用于删除此字符串呈现中出现的前导和尾随空格的示例代码是什么?换句话说:如何获得一个在 HTML 渲染中不会显示任何前导或训练空格但在其他方面相同的字符串?

<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>
javascript removing-whitespace
8个回答
282
投票

参见 String 方法

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,'');  
  };  
} 

...对于那些仍在池中浅水区游泳的浏览器,这会将方法注入到本机原型中。


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

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

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

19
投票

我知道这是一个非常古老的问题,但仍然没有公认的答案。我看到您希望删除以下内容:“空”的 html 标签和基于 html 字符串的空格。

我根据您对您正在寻找的输出的评论提出了一个解决方案:

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()
删除前导和尾随空格

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

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


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

9
投票

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

<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, '');

相关引用来自文档

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


4
投票

01)。如果您需要仅删除前导和尾随空白,请使用以下命令:

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

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

02)。如果您需要删除所有空白,请使用此:

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

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


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

-4
投票

String 值的

trim()
方法返回一个删除了两端空格的新字符串。

要返回仅从一端修剪掉空格的新字符串,请使用

trimStart()
trimEnd()

const greeting = '   Hello world!   ';
greeting.trim(); // returns "Hello world!";
greeting.trimStart(); // returns "Hello world!   ";
greeting.trimEnd(); // returns "   Hello world!";

请参阅 Mozilla 文档

© www.soinside.com 2019 - 2024. All rights reserved.