数据类型输入限制

考验正则的时候到了!

数字型

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.55if(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);
原文地址:https://www.cnblogs.com/tkzc2013/p/14701403.html