禁止输入框输入特殊符号或emoji表情 

// 判断是否含有特殊符号
let reg1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im
// 判断是否含有emoji表情
let reg2 = /[\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
// 如果为true,字符串含有emoji表情,false不含
console.log(reg2.test(info.personName))
// 如果为true,字符串含有特殊符号,false不含
console.log(reg1.test(info.personName))

 使用:

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/igthis.input = this.input.replace(reg, '')
},

全局设置:

let findEle = (parent, type) => {return parent.tagName.toLowerCase() === type ? parent : parent.querySelector(type)
}const trigger = (el, type) => {const e = document.createEvent('HTMLEvents')e.initEvent(type, true, true)el.dispatchEvent(e)
}const emoji = {bind: function (el, binding, vnode) {// 正则规则可根据需求自定义var regRule = /[\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/iglet $inp = findEle(el, 'input')el.$inp = $inp$inp.handle = function () {let val = $inp.value$inp.value = val.replace(regRule, '')trigger($inp, 'input')}$inp.addEventListener('keyup', $inp.handle)},unbind: function (el) {el.$inp.removeEventListener('keyup', el.$inp.handle)},
}export default emoji

使用:将需要校验的输入框加上 v-emoji 即可

<template><input type="text" v-model="text" v-emoji />
</template>

https://blog.csdn.net/rainbow8300/article/details/89848799
https://blog.csdn.net/qq_42004292/article/details/111355006

JS Vue 禁止输入框输入特殊符号或emoji表情相关推荐

  1. js 正则表达式禁止输入框输入特殊字符遇到的坑以及解决方案

    前言 最近在项目中有一个需求是禁止输入特殊字符,一开始我是在网上找的正则表达式直接用的,后来发现这个表达式同时也禁止了v,x,y,z,所以后来就想了一个比较笨的方法,把所有的特殊字符全部罗列出来,然后 ...

  2. mysql存储图片node_Node.js教程 阿里云mysql如何支持存储emoji表情

    本篇教程介绍了Node.js教程 阿里云mysql如何支持存储emoji表情,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入. < 本篇主要记录nodejs项目阿里云m ...

  3. 特殊符号,emoji表情,四字节去除问题

    最近遇到一个问题,公司的数据库是utf-8的字符集,而支持 特殊符号,emoji表情,四字节等特殊符号的需要是utf-8mb4的字符集才可以,不然强行插入是会报错的,这时候就需要将获取到的包含特殊符号 ...

  4. vue设置输入框输入长度_基于vue的限制输入框可输入字节数的解决方案

    2018年07月11日 基于vue的限制输入框可输入字节数的解决方案 需求:input输入框输入上限4个字节.达到上限则不能继续输入,其中1个英文表示1个字节.1个中文表示2个字节. 看到这个需求,第 ...

  5. 解决js函数replace禁止输入框输入非法字符,光标回到文字最后问题(兼容ie、谷歌)

    js代码: /*获取光标位置*/ function getCursorPos(obj) { var CaretPos = 0; // IE Support if (document.selection ...

  6. vue设置输入框输入长度_Vue实现input宽度随文字长度自适应操作

    业务需求,输入文字,后面的元要紧随其后,奈何input默认是有宽度,我想要达到,输入文字,动态改变input的宽度,试了很多方法,目前自己琢磨一种,有遇到问题的可以参考一下, 直接贴代码 type=& ...

  7. vue设置输入框输入长度_vue输入框限制字符串长度和输入内容实时验证的实现方式...

    一.最简单,通过maxlength和onkeyup ?:;'\\\$\%\^\&\*\(\)\-\|\[\]\{\}\{\}]/g,'');" /> 代码中正则是限制除中文外的 ...

  8. 禁止输入框输入空格 onkeyup

    原生 <input type="text" onkeyup="this.value=this.value.replace(/\s+/g,'')">v ...

  9. 把用户输入的文本转义(主要针对特殊符号和emoji表情)

    function userTextEncode($str){ if(!is_string($str))return $str;if(!$str || $str=='undefined')return ...

最新文章

  1. 谷歌花4亿英镑下注AI开始有回报 DeepMind创收了
  2. 876. Middle of the Linked List - LeetCode
  3. 【Git】将 GitHub 工程设置为私有库 ( 登录账号 | 工程主页 | Settings | Danger Zone | Change visibility | Make private )
  4. Hibernate核心配置文件cfg参数说明
  5. android 请求参数打印,android retrofit 请求参数格式RequestBody的方法
  6. matlab鬼成像,一种基于光计算的可视化计算鬼成像系统及成像方法与流程
  7. 《学习CSS布局》学习笔记
  8. 【更新】深度学习推荐系统
  9. 解决开启Vue项目缺少node_models包问题
  10. java web网上书城_javaweb网上书城项目
  11. Unity 世界坐标、屏幕坐标、UGUI 坐标 相互转换
  12. Laravel 框架发送邮件
  13. Essential Netty in Action 《Netty 实战(精髓)》
  14. 在使用vue脚手架之前你必须掌握的:vue的模版以及路由用法
  15. Transformer理解
  16. 细胞分裂3[详细剧情过关动画与任务布置详尽翻译]by kuangtian
  17. 经济的寒冬,数据的春天
  18. 【3D游戏建模全流程教学】使用3dmax制作教堂场景
  19. 当初我要是这么学习二叉树就好了「附图文解析」
  20. 讲真话、求真知、做真我——Facebook COO桑德伯格2012哈佛商学院毕业演讲

热门文章

  1. 【数据安全案例】买卖个人信息,武汉女高管被敲诈
  2. java的synthetic_Java中的synthetic
  3. STM8的NRST脚和SWIM脚简述
  4. 通过定时器Timer方式实现时间的精准控制
  5. Omnigraffle新手教程——制作表格
  6. 视频化全链路智能上云?一文详解什么是阿里云视频云「智能媒体生产」
  7. go cobra实例讲解
  8. AAS10.0控制台访问问题
  9. 单方面论述题-前缀和-小科的神笔详解+代码——伟大的旭哥的博客
  10. 360急速浏览器不自动升级的方法