我有一些需要转义的html代码然后转换回html ...我到现在为止的代码是......
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/',
"\n" : '<br>'
};
var entityMaprev = {
"&" :"&" ,
"<": "<",
">":">" ,
'"':'"' ,
''': "'",
'/': "/",
'<br>' : "\n"
};
function escapeHtml(string) {
return String(string).replace( /[&<>"'\/]|[\n]/g, function (s) {
return entityMap[s];
});
}
function revescapeHtml(string) {
return String(string).replace( /[&]|[<]|[>]|["]|[']|[/]|[<br>]/g, function (s) {
return entityMaprev[s];
});
}
函数escapeHtml(string)工作正常......
我遇到的问题是在函数revescapeHtml中它一直显示为未定义?在函数revescapeHtml中我的正则表达式是否正确?
感谢
答案 0 :(得分:1)
调整你的正则表达式:
function revescapeHtml(string) {
return String(string).replace( /(&|<|>|"|'|/|<br>)/g, function (s) {
return entityMaprev[s];
});
}
revescapeHtml("&")
返回&
。
顺便说一句:如果你想按原样返回"\n"
字符串,请调整你的数组:'<br>' : "\\n"