去除HTML、Word标签的一切样式,获得纯文本 不用正则替换,几行js代码搞定

用户从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代码搞定