jsおよびjquery入力ボックスの入力制限は、数値0と正の整数および負の整数のみを入力できます(最初の桁に0を入力し、2番目の桁に0より大きい数値を入力すると、最初の桁の0を自動的にクリアします)

要件:入力ボックスには、0、正の整数、および負の整数のみを入力できます。負の符号は1つのみ入力でき、上部には負の符号のみを入力できます。最初の桁は0で、2番目の桁は次の場合に自動的にクリアされます。 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.要件を達成するには、最初にbind onkeyupを入力してから、入力0を制御するメソッドを記述します。ページ上の複数の場所を呼び出したいのですが、入力に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