用户从Word文档粘贴文本到编辑器,简直是一场灾难。大量的注释、样式和xml标签令人痛苦不堪。如何使用最简便的方法彻底清理一切样式,回归淳朴的txt格式?
导读
我使用wangEditor富文本编辑器,需要面对用户输入。因此不可能要求用户先把文本粘贴到txt文档净化样式,必须得通过js捕获净化粘贴板。如何处理一段字符串,彻底清除所有样式?这个问题缠绕了我很久。
我在百度上搜了很久,都是用一段长长的正则进行替换。近百行的代码我都不想看一眼。而我用英文查了一下Google,第一条答案就解决了我的问题。
function strip_html(html) { //获得纯文本
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
var html = tmp.textContent || tmp.innerText;
html = html.replace(/(?:(\r\n)+|\r+|\n+)/g, "<br>");
return html;
}
这个思路和我一开始用textarea处理的想法很相似。就是生成一个div,让浏览器处理这些文本,最后只需要取div显示的内容就可以了。我额外做了一步处理,用正则将换行符替换为<br>
,并清理Word产生的多个换行。
结论:英语很重要,少翻百度多用Google。
欢迎来到Yari的网站:yar2001 » 去除HTML、Word标签的一切样式,获得纯文本 不用正则替换,几行js代码搞定