正则:/[^a-zA-Z0-9\u4E00-\u9FA5]/g,''
采用该正则表达式后,使用搜狗输入法没有问题,但采用微软自带输入法后,会存在输入数字及英文时为正常,切换为汉字后,会存在吞并当前光标前的字符。具体吞并个数和输入法中有几个汉字相关。

输入后点击其它位置 @keyup方法中打印日志会打印出在输入法中当时的字符数,发现会比正常输入英文时多出了一个”'“,导致不符合正则表达式,从而出现问题

更改正则表达式如下代码块所示
<el-form ref="form" :model="form" :rules="formRule">
<el-form-item label="用户名" prop="userName">
<el-input class="input-long" v-model="form.userName"
oninput="value=value.replace(/[^'\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">
</el-input>
</el-form-item>
<el-form-item label="账号" prop="userAccount">
<el-input class="input-long" v-model="form.userAccount"
oninput="value=value.replace(/[^'\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">
</el-input>
</el-form-item>
</el-form>