在项目开辟过程当中,我会有时候赶上如许的一个营业需求:对从数据库中读取出来的html数据举行反转义,才在当前网页当前举行衬着。
或许另一个需求,对编辑器中的文本举行编码再传进数据库,或许从库中读取的数据须要举行解码才衬着到网页上。
这时候,我们经常就会使用到转义与反转义,编码和解码。下面就是我一些项目中的代码片段,供参考,希望能给你供应个思绪举行题目的处理
/** JQuery Html Encoding、Decoding
* 道理是应用JQuery自带的html()和text()函数能够转义Html字符
* 假造一个Div经由过程赋值和取值来获得想要的Html编码或许解码
*/
// 项目是2014的项目,依靠库是jquery,并不是如今的react/angular/vue,jq版本是1.9.
// Html编码猎取Html转义实体
function htmlEncode(value) {
return $("
.text(value)
.html();
}
// Html解码猎取Html实体
function htmlDecode(value) {
return $("
.html(value)
.text();
}
// 猎取Html转义字符
function htmlEncode(html) {
return document.createElement("a").appendChild(document.createTextNode(html))
.parentNode.innerHTML;
}
// 猎取Html
function htmlDecode(html) {
var a = document.createElement("a");
a.innerHTML = html;
return a.textContent;
}
// 编码
function html_encode(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, ">");
s = s.replace(/
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, '"');
s = s.replace(/\n/g, "
");
return s;
}
//解码
function html_decode(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/>/g, "&");
s = s.replace(/
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/'/g, "'");
s = s.replace(/"/g, '"');
s = s.replace(/
/g, "\n");
return s;
}