js、jquery输入框input限制只能输入数字 0 和 正整数、负整数(第一位输入0,第二位输入大于0的数字时候自动清空第一位的0)

需求:输入框只能输入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);
});

猜你喜欢

转载自blog.csdn.net/qq_40015157/article/details/112601862