网上很多博客类似于这种
str = str.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");'
或者
str = /[\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;
//用法
<input onkeyup = "this.value = value.replace(str, "")">;
经过测试好多emoji是禁止不掉的
经过搜寻资源优化代码如下
</script>
<template>
<div>
<textarea @input="handleInput" ></textarea>
<input @input="handleInput" />
</div>
</template>
methods:{
handleInput(e){
let value = e.target.value
//禁止输入emoji表情,兼容大部分手机
value = value.replace(/[\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, '')
value = value.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");
value = value.replace(/[\uE000-\uF8FF]/g, '');
//禁止回车换行
},
}
<script>
可根据需求自行修改,经测试可兼容大部分手机过滤emoji