使用javascript怎么对HTML字符进行转义(html,javascript,web开发)

时间:2024-05-04 00:03:30 作者 : 石家庄SEO 分类 : web开发
  • TAG :

1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”。

这时候,就需要进行转义

使用javascript怎么对HTML字符进行转义

2.解决方案

<script>varHtmlUtil={/*1.用浏览器内部转换器实现html转码*/htmlEncode:function(html){//1.首先动态创建一个容器标签元素,如DIVvartemp=document.createElement("div");//2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)(temp.textContent!=undefined)?(temp.textContent=html):(temp.innerText=html);//3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了varoutput=temp.innerHTML;temp=null;returnoutput;},/*2.用浏览器内部转换器实现html解码*/htmlDecode:function(text){//1.首先动态创建一个容器标签元素,如DIVvartemp=document.createElement("div");//2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)temp.innerHTML=text;//3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。varoutput=temp.innerText||temp.textContent;temp=null;returnoutput;},/*3.用正则表达式实现html转码*/htmlEncodeByRegExp:function(str){vars="";if(str.length==0)return"";s=str.replace(/&/g,"&amp;");s=s.replace(/</g,"&lt;");s=s.replace(/>/g,"&gt;");s=s.replace(//g,"&nbsp;");s=s.replace(/\'/g,"'");s=s.replace(/\"/g,""");returns;},/*4.用正则表达式实现html解码*/htmlDecodeByRegExp:function(str){vars="";if(str.length==0)return"";s=str.replace(/&amp;/g,"&");s=s.replace(/&lt;/g,"<");s=s.replace(/&gt;/g,">");s=s.replace(/&nbsp;/g,"");s=s.replace(/'/g,"\'");s=s.replace(/"/g,"\"");returns;}};</script>

使用方法:HtmlUtil.htmlDecodeByRegExp("&amp;")

PS:使用正则

使用正则转码:

varvalue=document.getElementById('input').value.trim();//对用户输入进行转义value=value.replace(/&/g,"&amp;");value=value.replace(/</g,"&lt;");value=value.replace(/>/g,"&gt;");value=value.replace(//g,"&nbsp;");value=value.replace(/"/g,'&quot;');

使用正则解码:

varvalue=e.target.innerText;//value=decodeURIComponent(value);value=value.replace(/&amp;/g,"&");value=value.replace(/&lt;/g,"<");value=value.replace(/&gt;/g,">");value=value.replace(/&nbsp;/g,"");value=value.replace(/&quot/g,"'");

下面是其他网友的补充

在编写html时,经常需要转义,才能正常显示在页面上。

并且,还可以防止xss。

解决方案:

一, 使用正则:

使用正则转码:

varvalue=document.getElementById('input').value.trim();//对用户输入进行转义value=value.replace(/&/g,"&amp;");value=value.replace(/</g,"&lt;");value=value.replace(/>/g,"&gt;");value=value.replace(//g,"&nbsp;");value=value.replace(/"/g,'&quot;');

使用正则解码:

varvalue=e.target.innerText;//value=decodeURIComponent(value);value=value.replace(/&amp;/g,"&");value=value.replace(/&lt;/g,"<");value=value.replace(/&gt;/g,">");value=value.replace(/&nbsp;/g,"");value=value.replace(/&quot/g,"'");
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:使用javascript怎么对HTML字符进行转义的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python如何实现定时发送qq消息下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18