2020年7月30日

ueditor编辑器双引号 “”转义BUG的修复

作者 小牛源码

最近在使用ueditor编辑器的时候发现,它会把正常的“ 与 ”转义为 “ ” 

检查转义的方法发现对于“ ”是没有做处理的,需要自己加上去

ueditor.all.js





unhtml:function (str, reg) {

    return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g, function (a, b) {

        if (b) {

            return a;

        } else {

            return {

                '<':'&lt;',

                '&':'&amp;',

                '"':'&quot;',

                '>':'&gt;',

                "'":'''

            }[a]

        }



    }) : '';

},

   

html:function (str) {

    return str ? str.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function (m) {

        return {

            '&lt;':'<',

            '&amp;':'&',

            '&quot;':'"',

            '&gt;':'>',

            ''':"'",

            '&nbsp;':' '

        }[m]

    }) : '';

},


 

修复方法:

第一个方法 unhtml 把 amp|lt|quot|gt|#39|nbsp 替换为  amp|lt|quot|gt|#39|nbsp|ldquo|rdquo就可以了

第二个方法html

修改成


 

html:function (str) {

    return str ? str.replace(/&((g|l|quo)t|#39|nbsp|ldquo|rdquo|amp);/g, function (m) {

        return {

            '&lt;':'<',

            '&quot;':'"',

            '&gt;':'>',

            ''':"'",

            '&nbsp;':' ',

            '&ldquo;':'"',

            '&rdquo;':'"',

            '&amp;':'&'

        }[m]

    }) : '';

},

 

备注

如果替换后无效,请检查你引用的是否是 ueditor.all.min.js