如何从HTML元素中获取换行符

时间:2018-09-09 10:45:36

标签: javascript text

我基本上是通过这种方式从元素中获取文本的:

var paragraphElement = document.getElementById("para");
var paragraphText = paragraphElement.innerText;

但是,我不知道如何从innerText中获取换行符...或者innerText丢失了此信息,我需要以另一种方式来提取信息吗?

2 个答案:

答案 0 :(得分:0)

innerHTML获取或设置元素中包含的HTML或XML标记。

您是否正在寻找类似的东西?如果没有,请告诉我。

var paragraphElement = document.getElementById("para");
//var paragraphText = paragraphElement.innerText;
var withBreakLines = paragraphElement.innerHTML.split('<br>');
var output='';
for(var i=0;i<withBreakLines.length;i++){
  output = output+withBreakLines[i]+"\\n"+" ";
}
console.log(output);
//document.documentElement.outerHTML
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <p id="para">hfjksdjhiusdfj<br>ginins<br>sdfsdfsd</p>
</body>
</html>

答案 1 :(得分:0)

有换行符(作为不可见的换行符)。为了使它们在HTML中可见,您需要将white-space: pre-wrap;应用于显示文本的元素。

要查找换行符,请使用以下正则表达式:

/(\r\n|\n|\r)

text.addEventListener('input', e => {
  test.textContent = text.value.replace(/(\r\n|\n|\r)/gm,"…");
})
#test { white-space: pre-wrap; border : 1px solid #999; min-height: 1em; }
<textarea style="width: 400px; height: 120px" id="text"></textarea>
<h2>Text will show up in the subsequent div when you type</h2>
<div id="test"></div>