0

6文字に制限されている入力フィールドがあります。ユーザーが小数点以下1桁(つまり19..12)を超えないように、さらに小数点以下2桁(つまり19.123)までしか入力できないように、入力フィールドを検証するにはどうすればよいですか?

これは私の入力フィールドです

<input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span>

これが私の検証スクリプトです。

$(function(){
$("#amount").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    if (".1234567890NOABC".indexOf(chr) < 0)
        return false;
});
});

$("#amount").blur(function() {
    var amount = parseFloat($(this).val());
    if (amount) {
        if (amount < 40 || amount > 200) {
            $("span.paymentalert").html("Your payment must be between £40 and £200");
        } else {
            $("span.paymentalert").html("");
        }
    } else {
        $("span.paymentalert").html("Your payment must be a number");
    }
});

ジョナ

4

3 に答える 3

3

これは行う必要があります:

var ok = /^\d*\.?\d{0,2}$/.test(input);

(ドットの後に2桁を超えないようにする必要があることを正しく理解した場合)

したがって、コードは次のようになります。

$("#amount").blur(function() {
    var input = $(this).val();
    if (/^\d*\.?\d{0,2}$/.test(input)) {
        var amount = parseFloat(input);
        if (amount < 40 || amount > 200) {
            $("span.paymentalert").html("Your payment must be between £40 and £200");
        } else {
            $("span.paymentalert").html("");
        }
    } else {
        $("span.paymentalert").html("Your payment must be a number");
    }
});
于 2013-03-06T16:25:47.207 に答える
2

仮定して:

  1. 小数点以下2桁である必要があり、
  2. 小数点の前に2桁以上、3桁以下である必要があります

一致させるために使用するコードは次のとおりです。

var value = $(this).val;
value.match(/^\d{2,3}(\.\d{2})?$/i);
于 2013-03-06T16:32:26.943 に答える
1

jQueryにMaskedInputPlugin使用すると、はるかに簡単になります。

于 2013-03-06T16:27:05.620 に答える