uniapp/vue实现手机号分割344

在uniapp开发中,通过键盘事件处理手机号码输入时遇到双键同时输入导致的判断错误。为了解决这个问题,文章提出了使用$nextTick确保每次数据更新后执行函数,检查并格式化输入值,限制输入为数字且分段显示手机号。当输入长度在3到8位时,显示前三位;长度大于等于8位时,显示前七位。
摘要由CSDN通过智能技术生成

uniapp上手机号分割一般靠键盘事件实现或者监听,但两个按键一起输入时会判断出错,出现bug,自己记录一下所需要解决的情况,使用$nextTick()来实现每次数据刷新都能用上

html

<uni-easyinput maxlength="13" type="text" @keydown="phone_division"  @input="phone_division" @keyup="phone_division" @paste="phone_division"  placeholder-style="font-weight: 600;font-size:30rpx" v-model="loginForm.phone" placeholder="请输入手机号"></uni-easyinput>
复制代码

函数方法


phone_division() {
        this.$nextTick(() => {//使用$nextTick()来确保每次改变都调用函数
                //输入字段检测是否合法,如符号和字母
                let value = this.loginForm.phone.replace(/\D/g, '').substr(0, 11)
                let len = value.length //获取长度判断
                if (len > 3 && len < 8) {
                        value = value.replace(/^(\d{3})/g, '$1 ')
                } else if (len >= 8) {
                        value = value.replace(/^(\d{3})(\d{4})/g, '$1 $2 ')
                }
                console.log(value);
                this.loginForm.phone = value
        })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值