使用javascript怎么对HTML字符进行转义
导读:本文共2316.5字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”。这时候,就需要进行转义2.解决方案<script>varHtmlUtil={/*1.用浏览器内部转换器实现html转码*/htm... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在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,"&");s=s.replace(/</g,"<");s=s.replace(/>/g,">");s=s.replace(//g," ");s=s.replace(/\'/g,"'");s=s.replace(/\"/g,""");returns;},/*4.用正则表达式实现html解码*/htmlDecodeByRegExp:function(str){vars="";if(str.length==0)return"";s=str.replace(/&/g,"&");s=s.replace(/</g,"<");s=s.replace(/>/g,">");s=s.replace(/ /g,"");s=s.replace(/'/g,"\'");s=s.replace(/"/g,"\"");returns;}};</script>
使用方法:HtmlUtil.htmlDecodeByRegExp("&")
PS:使用正则
使用正则转码:
varvalue=document.getElementById('input').value.trim();//对用户输入进行转义value=value.replace(/&/g,"&");value=value.replace(/</g,"<");value=value.replace(/>/g,">");value=value.replace(//g," ");value=value.replace(/"/g,'"');
使用正则解码:
varvalue=e.target.innerText;//value=decodeURIComponent(value);value=value.replace(/&/g,"&");value=value.replace(/</g,"<");value=value.replace(/>/g,">");value=value.replace(/ /g,"");value=value.replace(/"/g,"'");
下面是其他网友的补充
在编写html时,经常需要转义,才能正常显示在页面上。
并且,还可以防止xss。
解决方案:
一, 使用正则:
使用正则转码:
varvalue=document.getElementById('input').value.trim();//对用户输入进行转义value=value.replace(/&/g,"&");value=value.replace(/</g,"<");value=value.replace(/>/g,">");value=value.replace(//g," ");value=value.replace(/"/g,'"');
使用正则解码:
varvalue=e.target.innerText;//value=decodeURIComponent(value);value=value.replace(/&/g,"&");value=value.replace(/</g,"<");value=value.replace(/>/g,">");value=value.replace(/ /g,"");value=value.replace(/"/g,"'");
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
使用javascript怎么对HTML字符进行转义的详细内容,希望对您有所帮助,信息来源于网络。