Vue中通过键盘事件去除输入框中空格

[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中的值正常绑定自己所需要的值

   
        
  

JS:

methods:{
    /**
     * @param {*根据state进行不同的正则业务} state
     */
    clearTrim(state) {
        this.listQuery[state] = this.listQuery[state].replace(/\s/ig, '').toUpperCase().slice(0, 20)
    },
}

如果有任何关于本文的意见,欢迎在文章下方留言,我会在看到的第一时间回复。

你可能感兴趣的:(Vue)