【发布时间】:2020-08-04 21:18:33
【问题描述】:
我正在尝试从字符串中删除 HTML 标记,但我想删除换行符。下面的代码不起作用,到目前为止,我还没有找到有效的正则表达式解决方案。
let input = "First<br>Second"
let cleaned = document.createElement("pre");
cleaned.innerHTML = input;
let output = cleaned.innerText;
console.log(output);
我想要什么:“第一\n第二”
它返回什么:“FirstSecond”
我该如何解决这个问题?
【问题讨论】:
-
我猜这取决于您使用的浏览器,在 Safari 中会保留换行符,但不是 Firefox、Opera 或 Chrome。我认为这是对浏览器战争的倒退,当时微软发明了 innerText 并且 W3C 提出了 textContent。它们的工作方式略有不同,一直持续到今天,Firefox 的 Mozilla/Netscape 根源似乎意味着它为两者都实现了 textContent。
标签: javascript escaping innerhtml innertext