如何使用 JavaScript 删除 html 标签并保留换行符?
How to remove html tags using JavaScript and keep newline?
我想从我的 contenteditable
中删除富文本 div 从剪贴板粘贴内容时只保留 newline
或 br
标签。
我正在尝试,但它不起作用
http://jsfiddle.net/marco83/zkf5jkqu/
<div id="editableDiv" contentEditable="true" style="min-height: 200px; border: solid 1px #0099FF;"></div>
<input type="button" value="remove" onclick="strip();">
<script>
function strip() {
var mydiv = document.getElementById("editableDiv");
var str = mydiv.innerHTML;
str = str.replace(/<br>/gi, "\n");
str = str.replace(/<(?:.|\s)*?>/g, "");
mydiv.innerHTML = str;
}
</script>
我从这个页面复制文字http://www.jacklmoore.com/autosize/
我知道它没有任何 <br>
标记文本。但我怎样才能像 Twitter 那样呢?谢谢。
试试这个
<script>
function strip() {
var mydiv = document.getElementById("editableDiv");
var str = mydiv.innerHTML;
mydiv.innerHTML = remove_tags(str);
}
function remove_tags(html) {
html = html.replace(/<br>/g, "$br$");
html = html.replace(/(?:\r\n|\r|\n)/g, '$br$');
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
html = tmp.textContent || tmp.innerText;
html = html.replace(/$br$/g, "<br>");
return html;
}
</script>
所以我正在做的是,我将 <br>
和 \n
替换为占位符 $br$
以保留它们,然后我将删除所有 HTML 标签并将 $br$
替换为 <br>
我想从我的 contenteditable
中删除富文本 div 从剪贴板粘贴内容时只保留 newline
或 br
标签。
我正在尝试,但它不起作用 http://jsfiddle.net/marco83/zkf5jkqu/
<div id="editableDiv" contentEditable="true" style="min-height: 200px; border: solid 1px #0099FF;"></div>
<input type="button" value="remove" onclick="strip();">
<script>
function strip() {
var mydiv = document.getElementById("editableDiv");
var str = mydiv.innerHTML;
str = str.replace(/<br>/gi, "\n");
str = str.replace(/<(?:.|\s)*?>/g, "");
mydiv.innerHTML = str;
}
</script>
我从这个页面复制文字http://www.jacklmoore.com/autosize/
我知道它没有任何 <br>
标记文本。但我怎样才能像 Twitter 那样呢?谢谢。
试试这个
<script>
function strip() {
var mydiv = document.getElementById("editableDiv");
var str = mydiv.innerHTML;
mydiv.innerHTML = remove_tags(str);
}
function remove_tags(html) {
html = html.replace(/<br>/g, "$br$");
html = html.replace(/(?:\r\n|\r|\n)/g, '$br$');
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
html = tmp.textContent || tmp.innerText;
html = html.replace(/$br$/g, "<br>");
return html;
}
</script>
所以我正在做的是,我将 <br>
和 \n
替换为占位符 $br$
以保留它们,然后我将删除所有 HTML 标签并将 $br$
替换为 <br>