vue中全局限制输入特殊字符
1.新建emoji.js
import Vue from 'vue'; // 禁止输入特殊字符 Vue.directive('emoji', { bind: function (el, binding, vnode) { // 正则规则可根据需求自定义 const regRule = /[`~^!@#$€£₤%^&*()_\-+=<>?:"{}|.\/;'\\[\]·~!……@#¥¥%*()\-+={}|《》?:“”【】‘']/im; let $inp = findEle(el, 'input') || findEle(el, 'textarea'); el.$inp = $inp; $inp.handle = function (event) { 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); } }); const 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); };
2.在 main.js 中引入该自定义组件
import '@/directives/emoji.js';
3.在组件中使用
在需要校验的输入框(多行文本框)加上 v-emoji 即可
<el-input v-emoji v-model="content" placeholder="请输入"> </el-input>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通