常见富文本处理方法

// html特殊字符转义
const special = html => {
    html = html.replace(/ /gm, ' ');
    html = html.replace(/&lt;/gm, '<');
    html = html.replace(/&gt;/gm, '>');
    html = html.replace(/&Oslash;/gm, 'Ø');
    html = html.replace(/&deg;/gm, '°');
    html = html.replace(/&quot;/gm, '"');
    html = html.replace(/&middot;/gm, '·');
    html = html.replace(/&amp;/gm, '&');
    html = html.replace(/&yen;/gm, '¥');
    return html;
};

// 移除样式字段
const removeCSS = html => {
    html = html.replace(/style=["'][^"']*['"]/ig, '');
    html = html.replace(/<style>[^<]*<\/style>/ig, '');
    return html;
};

// 替换标签
const stripHTML = html => {
    html = removeCSS(html);
    html = html.replace(/\\n|\n/gm, '<br>');
    html = html.replace(/(<\/p>)|(<tr>)|(<\/table>)|(<ol>)|(<\/ol>)|(<ul>)|(<\/ul>)|(<div>)|(<\/div>)/gm, '<br>');
    html = html.replace(/(<b[\s]*>)|(<\/b[\s]*>)/ig, '');
    html = html.replace(/(<li>)/gm, '');
    html = special(html);
    let regex = /<[^img | ^br].*?>/ig;

    html = html.replace(regex, '');
    html = html.replace(/(( *\n *\n\s*)+)/gm, '');
    html = html.trim();
    html = html.replace(/(<br[\s]*[/]?>[\s]*)+/ig, '<br>');
    html = html.replace(/(^<br>)|(<br>$)/ig, '');
    return html;
};
posted @ 2019-11-21 15:16  歆轶  阅读(1030)  评论(0编辑  收藏  举报