0

10 進数の検証には、次のスクリプトを使用します。数字と 123.00 のようなドット記号のみを入力する必要があります。次の関数は文字をサポートしていませんが、ドット (.)記号も入力できませんか? この関数を使用してドット記号を入力するには?

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
         else
         return true;
      }
4

8 に答える 8

1
function isNumberKey(evt)
       {
          var charCode = (evt.which) ? evt.which : event.keyCode
          if (charCode != 46 && charCode > 31 
            && (charCode < 48 || charCode > 57))
             return false;

          return true;
       }
于 2012-06-28T10:29:55.857 に答える
0
function validateFloatKeyPress2(valor, presicion, event) {
        var keyCode = (document.all) ? event.keyCode : event.which;
        if (keyCode == 8) {
            return true;
        }            
        if (keyCode == 46 && valor.value.indexOf(".") >= 0) {               
            return false;
        }
        //Enable Only float values
        if ((keyCode >= 48 && keyCode <= 57) || (keyCode == 46)) {

            if (reverse(valor.value).indexOf(".") > (presicion - 1)) {
                return false;
            }
            return true;
        }
        else {
            return false;
        }
    }

function reverse(s) {
        var o = '';
        for (var i = s.length - 1; i >= 0; i--)
            o += s[i];
        return o;
    }
于 2013-02-25T23:13:00.303 に答える
0

これを試して:

//数値フィールドの検証

function validate(x) {
    var decimal = /^[1-9][\.\d]*(,\d+)?$/;
    if (x.match(decimal)) {
        return true;
    } else {
        return false;
    }
}

また、parseFloat メソッドを確認すると、NaN が返されます。

于 2013-06-01T08:29:15.737 に答える
0

より洗練された方法である正規表現を使用します。

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode.match('/^[-+]?([0-9]*\.[0-9]+|[0-9]+)$/'))
            return false;
         else
         return true;
      }
于 2012-06-28T10:31:07.147 に答える
0
function IsNumeric(e) {
        var keyCode = e.which ? e.which : e.keyCode;
        var ret = ((keyCode == 46 || keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
        return ret;
}
于 2014-09-22T08:03:07.947 に答える
0
      関数 checkDecimal(数値){   

        var chkDecimal= /^\d+\.\d{0,2}$/;
        chkDecimal.test(num); を返します。

      }

      alert(checkDecimal(0.2))
      アラート (checkDecimal(1))  

于 2013-07-02T05:54:17.217 に答える