zoukankan      html  css  js  c++  java
  • 前端禁止键盘输入表情

    转载:https://www.cnblogs.com/zt-blog/p/6773854.html      http://www.cnblogs.com/zt-blog/p/6773854.html 

    在前端页面开发过程中,总会碰到不允许输入框输入emoji表情的需求,我的思路是通过编码用正则匹配表情,然后将其替换为空字符创。但是问题也是显而易见的,完整的编码集是什么呢?查阅了官方文档,发现上面并没有给出想要的答案。并且很多emoji表情除了主编码还有副编码(这是我给取的名字),举个例子:

      uD83CuDC00是一个表情,uD83CuDC00u200D又是一个表情,我把uD83CuDC00称为主编码,u200D称为副编码(或者衍生编码,反正意思理解了就行)。

    ----------------------------------------------------

    最终解决方案如下:

    复制代码
    1 var regStr = /[uD83C|uD83D|uD83E][uDC00-uDFFF][u200D|uFE0F]|[uD83C|uD83D|uD83E][uDC00-uDFFF]|[0-9|*|#]uFE0Fu20E3|[0-9|#]u20E3|[u203C-u3299]uFE0Fu200D|[u203C-u3299]uFE0F|[u2122-u2B55]|u303D|[A9|AE]u3030|uA9|uAE|u3030/ig;
    2 var org_val = $("input").val();
    3 
    4 if(regStr.test(org_val)){
    5   $("#input").val(org_val.replace(regStr,""));
    6 }
    复制代码

    上面的正则可以匹配iOS10.2.1及之前的全部emoji表情,Android的表情因为比较多,如上面的正则有遗漏,可自行补充。测试一个表情的编码方法如下:

    复制代码
    1 <input type="text" />
    2 
    3 
    4 var org_val = $("input").val();
    5 console.log(escape(org_val));
    6 //escape得到%uD83C%u.........格式的编码,可对应成u...格式
    复制代码
  • 相关阅读:
    事务
    handler
    codeforces 27E Number With The Given Amount Of Divisors
    暑期实践日志(五)
    暑期实践日志(四)
    暑期实践日志(三)
    暑期实践日志(二)
    暑期实践日志(一)
    数论 UVALive 2756
    数论 UVALive 2911
  • 原文地址:https://www.cnblogs.com/520BigBear/p/12671945.html
Copyright © 2011-2022 走看看