web-dev-qa-db-ja.com

10進数の検証

フォームがあり、jQuery検証プラグインを使用してそれを検証しています。今、私は10進数の入力を検証しようとしています。

次のコードを試してみましたが、機能しません。正規表現の問題、またはカスタムルールの記述方法がコードで間違っていますか?

 rules: {
      paid_amount: {
              required:true,
                      rexp: ^[1-9]\d*(\.\d+)?$
      },

   }
     },

 messages: {
             paid_amount: {
                      required: "Enter Paid Amount",
              rexp:"Decimal Numbers Only"
    },  

     }
});
11
black_belt

見つかった番号検証方法を使用できます here

ドキュメントから:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      number: true
    }
  }
});

あなたの場合:

rules: {
    paid_amount: {
        required:true,
        number: true
    }
},
messages: {
    paid_amount: {
        required: "Enter Paid Amount",
        number: "Decimal Numbers Only"
    }
}
15
dSquared

申し訳ありませんが、jqueryバリデータプラグインについてはよく知りませんが、正規表現は有効です。

別のアプローチは

var reg = "/^[1-9]\d*(\.\d+)?$/"; //reg pattern<br/>
if(reg.test("1.23"))//validate
{
 //do something <br/>
}
3
user1263800

jQueryバリデーターは、rangeメソッドを使用した10進数の検証もサポートしています。

factor:
      {
        required: true,
        range:[0.08,20.09]  
      },

詳細 こちら および デモ こちらをご覧ください。

2
RN Kushwaha

JQuery isNumeric関数を使用します: http://api.jquery.com/jQuery.isNumeric/

0
Robert Niestroj

問題は 'rexg'メソッドにあります。 「パターン」を使用する必要があります。例:

paid_amount: {
     required:true,
     pattern: ^[1-9]\d*(\.\d+)?$
}
0
merlincita_pj