0

要件:

入力フィールドを数字のみ、または最大 2 つの 10 進数のみにキー入力するように制限しようとしています。ユーザーが小数点以下 2 桁を超えて入力する場合、入力フィールドには小数点以下 2 桁までの数値のみを表示し、その他はすべて削除する必要があります。正規表現を使用しています。

問題:

入力フィールドに小数点以下 2 桁以上が入力された場合、すべての小数点以下の桁が削除されて表示されます。問題は正規表現にあります。

正しい正規表現の作成を手伝ってください。

コード:

http://jsfiddle.net/h6kYh/

$(document).ready(function() {

  $("#AmountField").bind("keyup change", function() {

    var value = $(this).val();

      var numericReg = /^d+(?:\.\d{0,2})?$/ ;
      if( !numericReg.test(value) )
      {
          value = value.replace(/(?=\d*\.?)(\d{3})/g,"");
          $(this).val(value);
      }
  });
});
4

2 に答える 2

0

そのはず

  var invalidNumericReg = /^\d+(\.\d{3,})$/;
  var validNumericReg = /^d+\(.\d{1,2})?$/;

  if( invalidNumericReg.test(value) )//has more than 3 decimal numbers!
  {
      value = value.replace(/^(\d+\.\d{2})\d+$/g,"$1");
      $(this).val(value);
  }
  else if( ! validNumericReg.test(value) )
  {
        //invalid input
  }
于 2013-04-22T17:45:49.240 に答える