JS 验证输入框输入 只允许输入正实数(正整数,正小数),其他情况下不能输入 oninput事件
input标签的oninput事件
要求输入框只输入正实数,包括整数和小数。
具体要求:整数部分不超过7位,可以没有小数,若有位数不超过2位。
<input type="text" id="myId" value="0" style="width: 100px;" oninput="InputOnchange(this.id);" /> <script> function InputOnchange(thisId) { //验证数据 var valueCurrent = document.getElementById(thisId).value; var value = valueCurrent; //不是数字 if (/[^\d]/.test(valueCurrent)) { //含小数点 if (valueCurrent.indexOf(".") != -1) { var valueArray = valueCurrent.split("."); //小数点不能首位 if (valueCurrent.indexOf(".") == 0) { value = ''; } //小数点只有一个 else if (valueArray.length > 2) { value = valueCurrent.substring(0, valueCurrent.length - 1); } //小数位数为2,且是数字 else if (valueArray[1].length > 2) { valueArray[1] = valueArray[1].substring(0, 2);//valueArray[1].length - 1 if (/[^\d]/.test(valueArray[1])) { valueArray[1] = valueArray[1].replace(/[^\d]/g,''); } value = valueArray.join('.'); } //小数部分也只能是数字 else if (/[^\d|\.]/.test(valueCurrent)) { value = valueCurrent.replace(/[^\d|\.]/g, ''); } } else{ value = valueCurrent.replace(/[^\d]/g, ''); } }//开头不能连续两个0 else if (valueCurrent.substring(0,1) == "0") { if (valueCurrent.substring(1,2) != ".") { value = "0"; } } //整数位数不超过7位 else if (valueCurrent.length>7) { value = valueCurrent.substring(0,7); } document.getElementById(thisId).value = value; //...省略部分代码...// } </script>
斩后知