js 常用的文本过滤转换函数

//去掉html标签  
export function removeHtmlTab(tab) {
    return tab.replace(/<[^<>]+?>/g, ''); //删除所有HTML标签
}
//普通字符转换成转意符 
export function html2Escape(sHtml) {
    return sHtml.replace(/[<>&"]/g, function(c) {
        return {
            '<': '&lt;',
            '>': '&gt;',
            '&': '&amp;',
            '"': '&quot;'
        } [c];
    });
}
//转意符换成普通字符  
export function escape2Html(str) {
    var arrEntities = {
        'lt': '<',
        'gt': '>',
        'nbsp': ' ',
        'amp': '&',
        'quot': '"',
        'deg':'°',
        'rsquo':'’',
    };
    return str.replace(/&(lt|gt|nbsp|amp|quot|deg|rsquo);/ig, function(all, t) {
        console.log("arrEntities",t)
        return arrEntities[t];
    });
}
// &nbsp;转成空格  
export function nbsp2Space(str) {
    var arrEntities = {
        'nbsp': ' '
    };
    return str.replace(/&(nbsp);/ig, function(all, t) {
        return arrEntities[t]
    })
}
//回车转为br标签  
export function return2Br(str) {
    return str.replace(/\r?\n/g, "<br />");
}
//去除开头结尾换行,并将连续3次以上换行转换成2次换行  
export function trimBr(str) {
    str = str.replace(/((\s|&nbsp;)*\r?\n){3,}/g, "\r\n\r\n");
    //限制最多2次换行  
    str = str.replace(/^((\s|&nbsp;)*\r?\n)+/g, '');
    //清除开头换行  
    str = str.replace(/((\s|&nbsp;)*\r?\n)+$/g, '');
    //清除结尾换行  
    return str;
}
// 将多个连续空格合并成一个空格  
export function mergeSpace(str) {
    str = str.replace(/(\s|&nbsp;)+/g, ' ');
    return str;
}

export function filterHtml(str) {
    //删掉HTML
    str = removeHtmlTab(str)
    // //去除开头结尾换行,并将连续3次以上换行转换成2次换行  
    // str = trimBr(str)
    // // 将多个连续空格合并成一个空格  
    // str = mergeSpace(str)

    // str = nbsp2Space(str)
    str = escape2Html(str)
    console.log("str",str)
    return str
}

 

posted @ 2022-06-29 11:05  羽鱼  阅读(119)  评论(0编辑  收藏  举报