[Talk is cheap. Show me the code]
不想看理论知识请直接移步最后代码示例。
一、项目场景
项目业务基于Vue以及ElementUI下的后台管理系统,其中涉及到对表单的正则验证,表单验证的要求是去除输入框中的空格,并将字母进行大写转换。
二、遇到的问题
最初的解决思路:
Vue本身提供了去除空格的修饰符 v-model.trim
所以可以通过 v-model.trim修饰符来去除空格,但是v-model.trim只能去除输入框前后的空格,中间的空格并不能去除。因此通过监听表单事件,通过正则匹配的方式来去除空格。
表单事件有 @input @keyup 等等。但ElementUI对表单进行了二次封装,想监听组件中的原生事件需要添加 .native修饰符来监听原生的keyup事件
三、代码示例
HTML:
v-model中的值正常绑定自己所需要的值
<el-form-item label="代码">
<el-input
v-model="listQuery.insuranceCode"
class="filter-item input-w"
placeholder="只能输入大写字母"
@keyup.native="clearTrim('insuranceCode')"
/>
</el-form-item>
JS:
methods:{
/**
* @param {*根据state进行不同的正则业务} state
*/
clearTrim(state) {
this.listQuery[state] = this.listQuery[state].replace(/\s/ig, '').toUpperCase().slice(0, 20)
},
}
如果有任何关于本文的意见,欢迎在文章下方留言,我会在看到的第一时间回复。