<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
},