欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript字符串与html实体互转

程序员文章站 2022-06-28 18:15:01
1、字符串转html实体 // 用于把用utf16编码的字符转换成实体字符,以供后台存储 ,utf16toEntities : function(str) { var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则 str = str.replace(patt, function(char){ var H, L, code; if (char...

1、字符串转html实体

    ,utf16toEntities : function(str) {
        var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
        str = str.replace(patt, function(char){
                var H, L, code;
                if (char.length===2) {
                    H = char.charCodeAt(0); // 取出高位
                    L = char.charCodeAt(1); // 取出低位
                    code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法
                    return "&#" + code + ";";
                } else {
                    return char;
                }
            });
        return str;
     }

2、html实体转字符串

function entitiestoUtf16(strObj){
            var patt = /&#\d+;/g;
            var H,L,code;
            var arr = strObj.match(patt)||[];
            for (var i=0;i<arr.length;i++){
                code = arr[i];
                code=code.replace('&#','').replace(';','');
                H = Math.floor((code-0x10000) / 0x400)+0xD800;// 计算高位
                L = (code - 0x10000) % 0x400 + 0xDC00;// 计算低位
                code = "&#"+code+";";
                var s = String.fromCharCode(H,L);
                strObj = strObj.replace(code,s);
            }
            return strObj;
        } 

本文地址:https://blog.csdn.net/chen11994/article/details/109247656

相关标签: js