有个需求是限制用户输入11位手机号码,且展示位数限制
发现把类型设置为type="number"后,会出现按鼠标上键数字变大的情况,而且还有一个讨厌 的数字增减图标。又在网上搜索取消这个增减图标,有人通过改样式取消,可是后面的数字限制也不见了,于是乎自己通过@input组件方法,使用正则表达式对输入的字符串进行判断,截取获得仅为数字的部分。这个判断循环可能有点耗费性能,但是,功能完美完成。唉,靠人不如靠己
<el-form-item label="客户联系方式"
:required=true
prop="customerPhone">
<el-input v-model="addForm.customerPhone"
size="mini"
@input="limitPhoneNum"
show-word-limit
maxlength="11"
placeholder="请输入" />
</el-form-item>
?
limitPhoneNum (value) {
let regex = new RegExp('^\\d+$');
if (!regex.test(value)) {
let numberLength = 0
for (; numberLength < this.addForm.customerPhone.length; numberLength++) {
if (!regex.test(this.addForm.customerPhone.charAt(numberLength))) {
break
}
}
this.addForm.customerPhone = this.addForm.customerPhone.slice(0, numberLength)
}
},