考验正则的时候到了!
数字型
1,整数
//1,保存第一个字符 let first_char = obj.value.charAt(0); //2,只保留数字 obj.value = obj.value.replace(/[^d]/g,''); //处理开头的0 obj.value = obj.value.replaceAll(/[^d]/g,''); if(obj.value != 0){ obj.value = obj.value.replace(/^0*/g,''); }else{ obj.value = obj.value.replace(/^0*/g,'0'); } //3,如果第一位是负号-,则可以添加 if(first_char =='-'){ obj.value = first_char + obj.value; }
2,非负整数
//1,保存第一个字符 let first_char = obj.value.charAt(0); //2,只保留数字 obj.value = obj.value.replace('/[^d]/g',''); //3,如果>0,去掉开头的0 if(obj.value > 0){ obj.value = obj.value.replace('/^0/g',''); }
3,正整数
//1,保存第一个字符 let first_char = obj.value.charAt(0); //2,只保留数字 obj.value = obj.value.replace('/[^d]/g',''); //3,去掉开头的0 obj.value = obj.value.replace('/^0/g','');
4,浮点型(包含整数)
//1,保存第一个字符 let first_char = obj.value.charAt(0); //2,只保留数字和点 obj.value = obj.value.replace('/[^d.]/g',''); //3,第一个不能是点 obj.value = obj.value.replace('/^./g',''); //4,连续的点只保留一个 obj.value = obj.value.replace('/.{2,}/g','.'); //5,保证点只能出现1次 obj.value = obj.value.replace('.','$#$').replace(/./g,'').replace('$#$','.'); //6,如果第一位是负号-,则可以添加 if(first_char =='-'){ obj.value = first_char + obj.value; }
5,限制大小
//在前面1-4的基础上,继续判断 max = 100.55; min = -100.55; if(obj.value>max){ obj.value=max; } if(obj.value<min){ obj.value = min; }
6,限制小数点位数,待整理
字符型
1,限制字符长度
//10位长度 let len =10; obj.value = obj.value.substring(0,len);