js把预定义的html字符串转换为 HTML 实体 htmlspecialchars 输出html实体内容包括标签,而不自动转义标签,只显示内容,类似php的htmlspecialchars
作者:互联网
一、html字符串转换为 HTML 实体 htmlspecialchars
function htmlspecialchars(str){
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/"/g, '"');
str = str.replace(/'/g, ''');
return str;
}
//这个版本多转换了一些内容
function htmlspecialchars(str) {
var s = "";
if (str.length == 0) return "";
for (var i=0; i<str.length; i++)
{
switch (str.substr(i,1))
{
case "<": s += "<"; break;
case ">": s += ">"; break;
case "&": s += "&"; break;
case " ":
if(str.substr(i + 1, 1) == " "){
s += " ";
i++;
} else s += " ";
break;
case "\"": s += """; break;
case "\n": s += "<br>"; break;
default: s += str.substr(i,1); break;
}
}
return s;
}
二、HTML实体 转换为 html字符串 htmlspecialchars_decode
将上面的htmlspecialchars中的匹配反过来如:
function htmlspecialchars_decode(str){
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/"/g, "''");
str = str.replace(/'/g, "'");
return str;
}
标签:case,return,标签,replace,break,html,str,htmlspecialchars 来源: https://blog.csdn.net/zhoushengbin3/article/details/113828313