2

これを行う方法を見つけるために数時間を費やしましたが、成功していません。Keyup/KeyPress イベントを追加して、2 ~ 1827 の値のみを受け入れたいと考えています。aspx 入力ボックスを使用しています。

$('#Field_TXT').keyup(function () {
            var regex = /[^2-9]|[^1-9][^0-9]|[^1-9][^0-9][^0-9]|[^1][^0-8][^0-2][^0-7]/;
            var myregexp = /^([1-9]|1[0-9]|1[0-9][0-9]|[1-9][0-9][0-9]|1[0-8][0-2][0-7])$/g;


            if (!this.value.match(myregexp)) {
                this.value = this.value.replace(regex, '');
            }
        });

正規表現を式として使用すると、ユーザーが 1 -19 を入力すると、式が false に一致し、値が '' に置き換えられるため、機能しません。ただし、2 番目の正規表現を使用すると、1 を入力できるようになります。

投稿された他の例も見ました。 HTML テキスト入力は数値入力のみ可能

前もって感謝します。

4

1 に答える 1

0

正規表現は、これを達成するための最も難しい方法のようです。次の例では、エントリが数値であり範囲内であることを確認します。その後の畑をどうするかはあなた次第です...

$('#Field_TXT').keyup(function() {
    var val = $(this).val();
    var is_numeric = /^\d+$/gi.test(val);
    if (is_numeric) {
        var val = parseInt(val);
        var within_range = (val >= 2 && val <= 1827);
    }
    if  (!is_numeric || !within_range) {
        $(this).val(/* Insert whatever value you want here */);
    }
});
于 2013-10-23T21:03:45.533 に答える