将HTML特殊字符替换为文本特殊字符

时间:2017-03-09 05:26:12

标签: jquery

我有一个表,我使用jquery将数据插入表中但是当我将数据发送到服务器进行验证时,'&'等html字符就像& ;安培; 即可。所以为了这个目的,我做了两个方法只是为了将html字符转换回文本字符。

方法1:

function decodeHtml(str) {
    var map =
    {
        '&': '&',
        '&lt;': '<',
        '&gt;': '>',
        '&quot;': '"',
        '&#039;': "'"
   };
return str.replace(/&amp;|&lt;|&gt;|&quot;|&#039;/g, function (m) { return map[m];

});}

方法2:

function decodeHTML(str){ 
    return $('<div>').html(str).text(); 
}
  

所以,我的问题是哪种方法最好,为什么?

1 个答案:

答案 0 :(得分:1)

第二种方法使用 的 1 即可。链接。 的 2 即可。 jquery在执行函数时执行大量检查。 <强> 3 即可。访问DOM。

很明显第一种方法更快,因为它是普通的javascript。虽然它在你的场景中不会产生如此巨大的差异,但如果你不喜欢第二种方法可能会非常慢明智地使用它是因为当jQuery从字符串构建元素时,它会通过迭代来添加所有顶级项。所以你可能需要将html包装在一个项目中。

使用类名访问DOM,使用数组等时,Jquery会更快。

希望,它澄清事情!

<强> P.S。更快,不要与更好或推荐相混淆。