知识点---移动端禁止输入表情符号

移动端过禁止输入emoji表情实现方案

 

最近手头上的项目有一个需求就是输入框不能输入表情,然后就各种在网上找资料,网上好多人给的方案是:

str = str.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");

用法大概就是:

<input onkeyup = "this.value = value.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "")">;

这个对于搜狗输入法是有用的,但是我手机上换了讯飞输入法试了试,并没什么卵用,第三方书法的emoji表情unicode编码范围还真不好确定。

 

所以反着来。你不让输入表情,我就只能输入中文,英文,数字,标点符号不就实现需求了吗?

<input type="text" id="ipt1" οninput="value = value.replace(/[^\u4E00-\u9FA5|\d|\a-zA-Z|\r\n\s,.?!,。?!…—&$=()-+/*{}[\]]|\s/g, '')" />

亲测有效。

///

更新:

/

上述的代码在ios端出现各种神奇的bug,简单点就是ios下不可用。所以还得找方法。还是找到了

 

复制代码
        // 判断是ios还是安卓
        if (ios_or_android() == 'ios') {
            $("#post").on("keyup", function(){
                var param = $(this).val();
                var regRule = /[^\u4E00-\u9FA5|\d|\a-zA-Z|\r\n\s,.?!,。?!…—&$=()-+/*{}[\]]|\s/g;
                $(this).val(param.replace(regRule,""));
            })     
        } else {

            $("#post").on("input", function(){
                var param = $(this).val();
                var regRule = /[^\u4E00-\u9FA5|\d|\a-zA-Z|\r\n\s,.?!,。?!…—&$=()-+/*{}[\]]|\s/g;
                $(this).val(param.replace(regRule,""));
            })
        }

        /*
        @功能:判断终端是ios还是安卓
         */ 
        function ios_or_android() {
          var u = navigator.userAgent;
          var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
          var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

          if (isAndroid) {
            return 'and';
          } else {
            return 'ios';
          }
        }
复制代码

转载于:https://www.cnblogs.com/liaohongwei/p/10725187.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值