【问题标题】:Check if value entered is a valid integer检查输入的值是否为有效整数
【发布时间】:2016-11-15 12:39:30
【问题描述】:

我想检查用户输入的值是否是使用jquery的有效整数

我试过这段代码,但它似乎总是返回 true

if ((manageridEntered === "") || ($.isNumeric(manageridEntered))) {
  success = false;
}

【问题讨论】:

  • 您看过api.jquery.com/jQuery.isNumeric 的文档吗?它声明:“[...] $.isNumeric() 只有当参数是数字类型,或者它是字符串类型并且可以强制转换为有限数字时才返回 true。在所有其他情况下,它返回 false。”
  • @gus27 你能试试数字后跟字母吗?例如:- 2ab 显示 IsNumeric 为真,这是错误的吗?

标签: javascript jquery


【解决方案1】:

你可以使用经典的 JavaScript:

var isNumber = Number.isInteger(yournumber);

或者如果你想检查它是否不是(不使用!):

var isNaN = Number.isNaN(yournumber);

console.log(Number.isInteger(0.1));       // false
console.log(Number.isInteger(1));         // true
console.log(Number.isInteger(-100000));   // true
console.log(Number.isInteger(Math.PI));   // false
console.log(Number.isInteger(-Infinity)); // false
console.log(Number.isInteger(true));      // false
console.log(Number.isInteger(NaN));       // false
console.log(Number.isInteger(0));         // true
console.log(Number.isInteger("10"));      // false

【讨论】:

    【解决方案2】:

    无需使用jquery

    你可以使用javascriptisNaN()

    isNaN() 也接受十进制数

    return !isNaN(manageridEntered))
    

    您可以在此处使用纯 javascript regex 来仅匹配数字

    return new RegExp('^\\d+$').test(manageridEntered))
    

    【讨论】:

    • isNaN 的方法也将返回 true 用于浮点数。
    【解决方案3】:

    您可以使用原生 JavaScript:

    success = !manageridEntered.length || parseInt(manageridEntered) == manageridEntered;
    

    【讨论】:

      【解决方案4】:

      使用正则表达式

      var intRegex = /^\d+$/;
      var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;
      
      var str = $('#myTextBox').val();
      if(intRegex.test(str) || floatRegex.test(str)) {
         alert('I am a number');
      
      }
      

      示例取自checking if number entered is a digit in jquery

      【讨论】:

        【解决方案5】:

        $('.submitBtn').click(function() {
          var Number = $('#Number').val();
        if ((Number === "") || ($.isNumeric(Number))) {
          alert('Valid NUmber');
        }else{
          alert('Not Valid NUmber');
        }
        });
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <form method="post" action="">
           Inateger Value: <input type="text" name="Number" id="Number" />
          <input type="submit" value="Submit" class="submitBtn">
        </form>

        【讨论】:

          【解决方案6】:

          isNumeric 正在检查一个数字(也可以包含在一个字符串中),而不是一个整数。除此之外,isNumeric() 并非总是返回 true,就像您在使用 JQuery 2.1.1 的以下 sn-p 中看到的那样。

          console.log($.isNumeric('a'));    // false
          console.log($.isNumeric('1'));    // true
          console.log($.isNumeric(1));      // true
          console.log($.isNumeric(1.5));    // true
          console.log($.isNumeric('1.5'));  // true
          &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

          【讨论】:

            【解决方案7】:

            请试试这个:

            if(Math.floor(manageridEntered) == manageridEntered && $.isNumeric(manageridEntered)){
                 //code here
            }
            

            【讨论】:

              【解决方案8】:

              使用正则表达式可以实现,见下面的代码

              $(document).ready(function () {
                          $("#button").on("click", function () {
              
                              var patt = new RegExp("^[0-9]*$");
                              if (patt.test($("#number").val())) {
                                  alert("true")
                              } else {
                                  alert("false")
                              }
                          });
              
                      });
              <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
              <input type="text" id="number" />
              <input type="button" id="button"  value="Check"/>

              【讨论】:

              • 我用过这个方法,但它仍然没有把我输入的数字当作有效数字
              • @user1483145 可能是你缺少的东西你可以看到上面的代码 sn-p 工作正常
              【解决方案9】:

              如果是整数则返回true

              if(manageridEntered == parseInt(manageridEntered))
              

              【讨论】:

                猜你喜欢
                • 2015-04-12
                • 2016-05-19
                • 2013-11-16
                • 1970-01-01
                • 2012-09-23
                相关资源
                最近更新 更多