记录一下踩坑,vue 禁止输入emoji表情

文章介绍了如何使用正则表达式在JavaScript中禁止用户在文本框或输入域中输入Emoji表情,提供了两种优化后的代码段,并强调了兼容大部分手机设备的需求。示例代码包括在Vue中的实现,以及对不同类型的Emoji字符的匹配和替换策略。
摘要由CSDN通过智能技术生成

网上很多博客类似于这种

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值