input输入表情符号
<input type="text" placeholder="" v-model="text" @input="onInput()" /> //禁止输入表情符号 onInput () { var reg = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig this.text = this.text.replace(reg, '') } //允许输入表情符号及颜文字 //表情符号转码 encodeEmoji(text){ var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则 text = text.replace(patt, (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 text },