限制只能输入数字,包含范围(大于一个负数,小于一个正数),小数点,和负号,只能输入一个小数点

 
  
function filterVal( e, min, max){
let length = e. target. value. length;
let f = e. target. value. slice( 0, 1);
let point = e. target. value. slice( length- 1, length);
let matchLength = e. target. value. match( / \. / g);
if( point == "." && matchLength && matchLength. length< 3){
if( matchLength. length == 2){
e. target. value= e. target. value. slice( 0, length- 1);
}
if( e. target. value == "-."){
e. target. value = "-0.";
}
} else{
e. target. value = e. target. value. replace( / [^ \d ] $ / g, "");
if( e. target. value != 0 && point != "0" && e. target. value != "-" && e. target. value != "."){
e. target. value = e. target. value - 0;
}
}
let resualt = f == "-" ? f + e. target. value. slice( 1) : e. target. value;
function limitLng( value) {
let f = value. slice( 0, 1);
if ( f == "-") {
if ( value < min) {
if ( value. slice( 0, 4) >= min) {
return value. slice( 0, 4);
} else {
return value. slice( 0, 3);
}
}
} else {
if ( value > max) {
if ( value. slice( 0, 3) <= max) {
return value. slice( 0, 3);
} else {
return value. slice( 0, 2);
}
}
}
return value;
}
e. target. value = limitLng( resualt);
}

使用说明:e是input元素原生event,min<0;max>0; 用于输入框只能输入数字,且在min--max之间,支持负号,小数点

你可能感兴趣的:(js)