JS转换HTML转义符 [转]

最近有个需求,就是后台系统编辑文章内容存到后台,前端这边获取到是转义后的字符串,如果直接将转义后的内容写在页面上,html标签不会被解析。网上找到觉得不错的功能函数,这里记录一下

//去掉html标签

function removeHtmlTab(tab) { 
 return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签 
} 

//普通字符转换成转意符

function html2Escape(sHtml) { 
 return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':'>','&':'&','"':'"'}[c];}); 
}

//转意符换成普通字符

function escape2Html(str) { 
 var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'}; 
 return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];}); 
}

// 转成空格

function nbsp2Space(str) { 
 var arrEntities = {'nbsp' : ' '}; 
 return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]}) 
}

//回车转为br标签

function return2Br(str) { 
 return str.replace(/\r?\n/g,"<br />"); 
} 

//去除开头结尾换行,并将连续3次以上换行转换成2次换行

function trimBr(str) { 
 str=str.replace(/((\s| )*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行 
 str=str.replace(/^((\s| )*\r?\n)+/g,'');//清除开头换行 
 str=str.replace(/((\s| )*\r?\n)+$/g,'');//清除结尾换行 
 return str; 
}

// 将多个连续空格合并成一个空格

function mergeSpace(str) { 
 str=str.replace(/(\s| )+/g,' '); 
 return str; 
}

参考文章

    原文作者:mydef
    原文地址: https://segmentfault.com/a/1190000012485586
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞