JavaScript实现HTML实体编码与解码的两种方法

作者:页面旅途

时间:2026-10-30

浏览:534

本文介绍了在JavaScript中将字符串转换为HTML实体编码及解码的两种常用方法。第一种利用浏览器内置的DOM元素innerText与innerHTML属性进行转换;第二种通过正则表达式逐个替换特殊字符。文章提供了完整的代码示例,并指出了DOM方法在解码时可能存在的显示问题及解决思路。

文章目录

利用DOM属性进行转换

方法一:

利用浏览器内部的转换器来实现字符串的转换。具体做法是动态创建一个容器标签元素(例如DIV),将要处理的字符串赋值给该元素的innerText属性,随后获取该元素的innerHTML属性值,即可得到经过HTML编码转换后的字符串。


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

同样地,可以使用类似的方法实现字符串的HTML解码。但需要注意的是,如果解码后的字符串以字符" <"开头且后面紧跟非空字符,这部分内容可能无法正确显示。虽然可以通过在" <"后添加空格再解码去除的方式解决,但由于经过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实体的方法的全部内容了,希望对大家有所帮助,多多支持本站~

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章