检查文本框是否仅包含数字

时间:2015-05-19 10:52:53

标签: javascript jquery regex

如何检查文本框是否仅包含数字?

谷歌搜索时我遇到了这个。但是我想知道isNumeric是否可以用于此目的,或者是否有更简单的方法来检查文本框是否具有数值。

var query = $('#myText').val();
if (parseFloat(query) == NaN) {
    alert("query is a string");
} else {
    alert("query is numeric");
}

5 个答案:

答案 0 :(得分:22)

您可以检查用户是否仅在输入和正则表达式上使用change事件输入了数字。

$(document).ready(function() {
    $('#myText').on('change', function() {
        if (/^\d+$/.test($(this).val())) {
            // Contain numbers only
        } else {
            // Contain other characters also
        }
    })
});

REGEX:

  1. /:正则表达式的分隔符
  2. ^:以
  3. 开头
  4. \d:任意数字
  5. +:前面一个或多个字符
  6. $:结束
  7. 正则表达式可视化:

    enter image description here

    Demo

    如果您只想允许数字,可以使用input-numberpattern

    <input type="number" pattern="\d+" />
    

答案 1 :(得分:3)

使用纯JS正则表达式

 var query = document.getElementById('myText').value;
 var isNumeric=query.match(/^\d+$/);
  if(isNumeric){/*...*/}else{/*...*/}

或使用html5控件

 <input type="number" name="quantity" min="1" max="5">

答案 2 :(得分:2)

有许多方法,您可以使用isNaN

 isNaN(VALUE);

您还可以使用regEx验证数值。

console.log(/^\d+$/.test(VALUE));

答案 3 :(得分:1)

Jquery提供了通用的util方法来处理这个问题。 处理numeric / float / hex

$.isNumeric( value )

尝试:fiddle

答案 4 :(得分:0)

您可以将文本框的值与数字回归进行匹配,以检查它是否仅包含数字,如下面的代码...

if($('#myText').val().match(/^\d+$/)){
// Your code here
}