οninput=“value=value.replace(/^(0{2,})/g, ‘0’).replace(/^(?!0$)0+(?!.)/, ‘’).replace(/[^\d.]+/g, ‘’).replace(/(…*)./g, ‘$1’)”
解释:
replace(/^(0{2,})/g, '0'):这个正则表达式匹配开头有连续两个或更多的0的情况,并将其替换为单个0。
replace(/^(?!0$)0+(?!\.)/, ''):这个正则表达式匹配开头有多个0的情况(但不包括单个0),并将其替换为空字符串。这个正则表达式确保数字不以多个0开头。
replace(/[^\d.]+/g, ''):这个正则表达式匹配任何不是数字或小数点的字符,并将其替换为空字符串。这个正则表达式用于删除除数字和小数点之外的任何字符。
replace(/(\..*)\./g, '$1'):这个正则表达式匹配小数点后面还有小数点的情况,并将第二个小数点及其后面的内容替换为第一个小数点前的内容。这个正则表达式用于确保只有一个小数点出现在输入中。
或是采用方法@input=“handleInput”,输入的是数字,排除00,01情况,且不大于100
handleInput (value, key) {
value = value.replace(/^[0]+[0-9]{1,}|[^\d]/g, '');
value = (parseInt(value) || '') <= 100 ? value : value.slice(0, -1);
this.params[key] = value;
}