输入框数字验证
输入框只能输入数字类型
| <input @input="validateNumber($event)">
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| @Params { event: 输入框内容 v: 1 只有一个小数点 maxValue: 限制输入数字最大值 obj, propertyName 自定将obj[propertyName]替换为输入的内容 } validateNumber(event: any,v: number, maxValue?: number, obj?: any, propertyName?: string) { let value = event.target.value; value = value.replace(/^\s+|\s+$/g, ''); if(v === 1) { value = value.replace(/[^0-9.]/g, ''); } else { value = value.replace(/[^0-9]/g, ''); } const parts = value.split('.'); if (parts.length > 2) { value = parts[0] + '.' + parts.slice(1).join(''); } if (value.indexOf('.') === -1) { value = value.replace(/^0+(?=\d)/, ''); } else { value = value.replace(/^0+(?=\d)/, '0'); } if (maxValue !== undefined && value !== '' && parseFloat(value) > Number(maxValue)) { value = Number(maxValue); }
event.target.value = value; if (obj && propertyName) { obj[propertyName] = value; } }
|