首页 > Web开发 > 详细

js转html实体

时间:2015-01-19 18:48:44      阅读:292      评论:0      收藏:0      [点我收藏+]

方法一: 

用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText,然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串。 

function HTMLEncode ( input ) 

var converter = document.createElement("DIV"); 
converter.innerText = input; 
var output = converter.innerHTML; 
converter = null; 
return output; 


当 然,还可以用相同的方法实现对字符串的HTMLDecode解码,但有个问题就是紧跟在字符" <"后面的非空字符将连同字符" <"同时显示不出来。当然,对字符串作相应处理是可以解决这个问题的,比如在字符" <"后面加个空格,解码后再去掉就行,这是后话。毕竟,要使用 HTMLDecode方法解码,自然是字符串已经经过HTMLEncode方法编码了,而经过HTMLEncode编码后的字符串,是不可能有字符 " <"存在的。 

function HTMLDecode ( input ) 

var converter = document.createElement("DIV"); 
converter.innerHTML = input; 
var output = converter.innerText; 
converter = null; 
return output; 



方法二: 
<script    language=javascript>  

  function    HTMLEnCode(str)  
  {  
        var    s    =    "";  
        if    (str.length    ==    0)    return    "";  
        s    =    str.replace(/&/g,    "&gt;");  
        s    =    s.replace(/ </g,        "&lt;");  
        s    =    s.replace(/>/g,        "&gt;");  
        s    =    s.replace(/    /g,        "&nbsp;");  
        s    =    s.replace(/\‘/g,      "‘");  
        s    =    s.replace(/\"/g,      "&quot;");  
        s    =    s.replace(/\n/g,      " <br>");  
        return    s;  
  }  
  function    HTMLDeCode(str)  
  {  
        var    s    =    "";  
        if    (str.length    ==    0)    return    "";  
        s    =    str.replace(/&gt;/g,    "&");  
        s    =    s.replace(/&lt;/g,        " <");  
        s    =    s.replace(/&gt;/g,        ">");  
        s    =    s.replace(/&nbsp;/g,        "    ");  
        s    =    s.replace(/‘/g,      "\‘");  
        s    =    s.replace(/&quot;/g,      "\"");  
        s    =    s.replace(/ <br>/g,      "\n");  
        return    s;  
  }  
  </script>

js转html实体

原文:http://www.cnblogs.com/mizzle/p/4234282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!