删除HTML标记和格式化文本

时间:2018-05-15 09:03:38

标签: javascript html angular

我想删除文本之间的HTML标记并将换行符更改为空格。我在下面使用这种模式,但它并不完美。它在文本之间添加两个或更多空格。如何解决这种模式?

replace(/(&nbsp;|<([^>]+)>)/ig, ' ');

2 个答案:

答案 0 :(得分:1)

尝试以下代码并检查

replace(/(<([^>]+)>)/ig,"");

<强>更新

你可以这样做,

var html = 'Example: &nbsp;<h1></h1><p></p><div>&nbsp;</div><div>CONTENT</div>&nbsp;';
html = html.replace(/\s|\n|&nbsp;/g, ' ');
html = html.replace(/<[^>]+>/gm, '');

输出将是这样的,

Example:   CONTENT 

玩上述解决方案&amp;你会成功的。

答案 1 :(得分:0)

以下是我如何做你想做的事情:
(请参阅我的代码段中的评论)

&#13;
&#13;
// Input data
var input_data = `My<div><br>
<span></span>
<span></span>
</div><p>Content</p>`;
console.log("Input:", input_data);

// Creates html element with Input data
var elm = document.createElement('div');
elm.innerHTML = input_data;

// Use native function '.innerText' to get rid of the html,
// then replace new lines by spaces, and multiple spaces by only one space
output_data = elm.innerText.replace(/\n/g, ' ').replace(/[\s]+/g, ' ');
console.log("Output:", output_data);
&#13;
&#13;
&#13;

希望它有所帮助!