input输入框使用正则限制为数字、英文及中文,出现吞字符问题

正则:/[^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>

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值