0

入力された価格をチェックするための正規表現が用意されています。価格は 5 桁以上の合計にすることはできませんが、オプションの 10 進数を含めることはできます。そう -

  • 1000 = 許可
  • 9999.99 = 許可
  • 10000 = 許可されていません
  • 100.000 = 許可されていません

これは私がこれまでに持っていたもので、小数点以下の桁数を正しくチェックしていますが、小数点以下の桁数をチェックしていません。私は何を間違っていますか?

var reg = new RegExp("^(\d{0,4})+(\.[0-9]{2})?$");
4

1 に答える 1

3

量指定子が間違っています

var reg = new RegExp("^(\d{0,4})(\.[0-9]{2})?$");

を削除するだけ+で、正規表現は問題ありません。

ここでRegexrを参照してください

これにより(\d{0,4})+、最初のグループが繰り返されるため、ドットの前の任意の数の数字を一致させることができます。

ダブルエスケープすると、あなたのjsfiddleが機能します

var reg = new RegExp("^\\d{0,4}(?:\\.\\d{2})?$");

または、正規表現を文字列に入れないでください

var reg = new RegExp(/^(\d{0,4})(\.[0-9]{2})?$/);
于 2012-12-17T12:28:41.550 に答える