使用javascript从HTML转换为文本时出现问题

使用javascript从HTML转换为文本时出现问题,javascript,html,regex,Javascript,Html,Regex,我有下面的代码片段来将html转换为javascript,但是当绑定到textarea时,我似乎遇到了输出问题,我无法找出问题所在 var html_to_text = $('#source').val().replace('&nbsp;', ' ').replace(/<[^>]*>/g, '').replace(/(<br>)+/g, '<br>'); var html_to_text=$('#source').val().replace(

我有下面的代码片段来将html转换为javascript,但是当绑定到textarea时,我似乎遇到了输出问题,我无法找出问题所在

var html_to_text = $('#source').val().replace('&nbsp;', ' ').replace(/<[^>]*>/g, '').replace(/(<br>)+/g, '<br>');
var html_to_text=$('#source').val().replace('',).replace(/]*>/g'').replace(/(
)+//g,
);
当在警报上显示时,输出是正确的,但是,当警报绑定到文本区域时,文本区域上有大量空白。有人能帮我理解上面的代码片段可能有什么问题吗

我在

的末尾添加了一个相同的工作示例。替换(/\s{2,}/g,'\n\r')。

.replace(/\r?\n | \r/g,”)

这一个只删除了多个换行符(取自),所以您仍然可以得到一个很好的格式


只需将断线替换为零即可

        html_to_text = html_to_text.replace(/\n/g, ''); 

有什么问题吗?原始HTML中有很多空白(
\n
和空格),并且删除了很多非空白。留下了很多空白。另外,您的第一个
.replace()
调用没有使用正则表达式,因此它只替换第一个出现的(不存在的)
如何在警报上而不是在#目标文本区域上显示正确的输出。我遗漏了什么吗?我在警报和文本区域都看到了很多空白。是否需要将.replace(/\s{2,}/g,'\n\r')添加到链中?
$('#source').val().replace(/]*>/g',).replace(/\n/g',)1>正确的顺序是
\r\n
而不是
\n\r
2>,它将替换空格,\r\f换行符此答案在不丢失格式的情况下正确工作,并且具有@Anirudh建议的改进。