js转html实体

方法一: 

用的浏览器内部转换器实现转换,方法是动态建立一个容器标签元素,如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> javascript

相关文章
相关标签/搜索