javascript 把html代码转换为实体的函数 20

结果不对functionhtmlEscape(text){returntext.replace(/[<>"&]/g,function(match,pos,original... 结果不对

function htmlEscape(text){
return text.replace(/[<>"&]/g,function(match,pos,originalText){
switch(match){
case "<":return "<";
case ">":return ">";
case "&":return "&";
case "\"":return """;
}
});
}

var test=htmlEscape("<p>something.</p>")

document.write(test)
百度把lt gt amp这些转换了,return后面是实体
展开
 我来答
百度网友45ec25c
2017-11-06 · 超过30用户采纳过TA的回答
知道答主
回答量:126
采纳率:80%
帮助的人:27.8万
展开全部

你应该是需要html编码和解码,我这里有个比较巧妙的方式

//js版
//Html编码获取Html转义实体 
function htmlEncode(value) {
    var e = document.createElement('div');
    e.innerText = value;
    return e.innerHTML;
}
//Html解码获取Html实体 
function htmlDecode(value) {
    var e = document.createElement('div');
    e.innerHTML = value;
    return e.innerText;
}

//jQuery版
//Html编码获取Html转义实体 
function htmlEncode(value){ 
 return $('<div/>').text(value).html(); 

//Html解码获取Html实体 
function htmlDecode(value){ 
 return $('<div/>').html(value).text(); 
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘟嘟乐悠
2011-04-27 · TA获得超过568个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:331万
展开全部
应该这么写:
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jg...7@163.com
2011-04-27 · TA获得超过287个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:193万
展开全部
<script language="javascript">
function htmlEscape(text){
return text.replace(/[<>"&]/g,function(match,pos,originalText){
switch(match){
case "<":return "<";
case ">":return ">";
case "&":return "&";
case "\"":return "\""; //需要转义第二个引号
}
});
}

var test=htmlEscape("<p>something.</p>")

document.write(test)

</script>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yegao
2011-04-27 · TA获得超过1154个赞
知道小有建树答主
回答量:533
采纳率:66%
帮助的人:381万
展开全部
是不是要加个break啊,我眼睛很累,没仔细看啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式