移动前端手机输入法自带emoji表情字符处理

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <input type="text" placeholder="输入一个表情看看" id="text">
    <p id="ttt"></p>
    <button onclick="tj()">提交</button>
</body>

</html>

<script>
    function utf16toEntities(str) {
        // 用于把用utf16编码的字符转换成实体字符,以供后台存储 
        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;
    }
    function tj() {
        let txt = document.getElementById('text').value // 获取用户的输入内容
        let t16 = utf16toEntities(txt) //  用于把用utf16编码的字符转换成实体字符,以供后台存储 
        document.getElementById('ttt').innerHTML = t16 // 前台使用
    }

</script>

发表评论

邮箱地址不会被公开。 必填项已用*标注