最近在做的项目要通过一个安全测评,其中有一个安全要求是前段禁止输入特殊字符,记录一下实现的方式。
首先在main.js中天添加下面这个全局方法,来过滤特殊字符。
Vue.prototype.validForbid = function (value) {if (value) {value = value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g, '').replace(/\s/g, "")}return value || ''
}
在用到输入框的地方添加on-change事件调用这个全局方法过滤:
<x-inputtitle="会议名称"v-model="formadata.subject"text-align="right"required@on-change="$nextTick(()=>{formadata.subject = validForbid(formadata.subject)})":is-type="checkSubject":show-clear="false"placeholder="请输入会议名称"></x-input>
注意要用$nextTick(),不然不生效,试过用$set()和forceUpdate()都没有生效,具体的原因并不清楚,有大佬看到可以解释一下,感激不尽