需求:输入框只能输入0、 正整数 、负整数;只能输入一个负号且只能在最前面输入负号;第一位输入0,第二位输入大于0的数字时候自动清空第一位的0(例如:01 为 1; 00 为 0;-0 为 0)。
1、使用onkeyup 只能输入0、正整数、负整数,只能输入一个负号且只能在最前面输入负号,但不能控制 输入0时的情况 。
<input type="text" name="phone" class="layui-input" onkeyup="value=value.match(/^-?[0-9]\d*$/)||value.match(/-?/)">
2、实现需求,input先绑定onkeyup,再写一个控制输入0 的方法。我想在页面多地方调用就在input 里面加 num-input类名就可以了。
<input type="text" name="phone" class="layui-input num-input" onkeyup="value=value.match(/^-?[0-9]\d*$/)||value.match(/-?/)">
//输入框只能输入数字 0 正整数 负整数
$(document).on('input', '.num-input', function () {
let val = $(this).val();
//输入大于0的数字时候自动清空前面的0
if (val > 0) {// 01 => 1
if (val[0] == 0) {
val = val.substr(1);
}
} else if (val == 0) {
if (val[0] == 0) {// 00 => 0
val = val.slice(0, 1);
} else if(val[0] == "-"){ // -0 => 0
val = 0;
}
} else {
if (val[1] == 0) {// -2 在中间写0 -02 => 0
val = 0;
}
}
$(this).val(val);
});