Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查输入中是否只输入了数值。(jQuery)_Javascript_Jquery - Fatal编程技术网

Javascript 检查输入中是否只输入了数值。(jQuery)

Javascript 检查输入中是否只输入了数值。(jQuery),javascript,jquery,Javascript,Jquery,我想在jQuery的帮助下检查用户是否在中输入了正确的电话号码,到目前为止,我已经到了这个阶段: var phone = $("input#phone").val(); if (phone !== "") { //Check if phone is numeric $("label#phone_error").show(); //Show error $("input#phone").focus(); //Focus on field return false;

我想在jQuery的帮助下检查用户是否在中输入了正确的电话号码,到目前为止,我已经到了这个阶段:

var phone = $("input#phone").val();
if (phone !== "") {
    //Check if phone is numeric
    $("label#phone_error").show(); //Show error
    $("input#phone").focus(); //Focus on field
    return false;
}
基本上,它会检查是否输入了电话号码,如果是,我想检查它是否是一个数值,以及它是否没有显示错误消息。 有人能帮忙检查一下它是否是数字吗?

看看这个。这正是你想要的。用于jQuery的美国手机验证插件


如果你想自己做这件事,你会有很多工作要做。查看
isNaN()
函数。它告诉你它是否不是一个数字。您还需要重新学习正则表达式以进行验证。如果您使用的是正则表达式,您可以不使用
isNaN()
,因为您将对此进行测试。

试试这个。。。它将确保字符串“phone”只包含数字,并且至少包含一个数字

if(phone.match(/^\d+$/)) {
    // your code here
}

jQuery中有一个内置函数用于检查此项(isNumeric),因此请尝试以下操作:

var phone = $("input#phone").val();
    if (phone !== "" && !$.isNumeric(phone)) {
  //Check if phone is numeric
  $("label#phone_error").show(); //Show error
  $("input#phone").focus(); //Focus on field
  return false;
}
我用了这个:

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, ""); 
return this.optional(element) || phone_number.length > 9 &&
    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

对于未来的访问者,您可以添加这个函数,允许用户只输入数字:您只需将jquery和类名添加到检查到的输入中

$('.phone_number')。按键(功能(事件){
var numero=String.fromCharCode(event.keyCode);
var myArray=['0','1','2','3','4','5','6','7','8','9',0,1,2,3,4,5,6,7,8,9];
index=myArray.indexOf(numero);//1
var longeur=$('.phone_number').val().length;
if(window.getSelection){
text=window.getSelection().toString();
}如果(索引>=0&text.length>0){

}else if(index>=0&longeur我用它来检查所有文本框是否都有数值:

if(!$.isNumeric($('input:text').val())) {
        alert("All the text boxes must have numeric values!");
        return false;
    }
或一个:

$.isNumeric($("txtBox").val());
jQuery1.7提供

 if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
            alert('Please enter only numbers into amount textbox.')
            }
            else
            {
            alert('Right Number');
            }
我希望这段代码可以帮助你

在此代码中,如果存在任何小数位数的合法小数,if条件将返回true。警报将显示消息“Right number”,否则将显示一个警报弹出窗口,消息为“请在金额文本框中仅输入数字”


谢谢……:)

这不是问题的确切答案,但电话验证的另一个选项是确保以您期望的格式输入号码

这里有一个我使用过的函数,当设置为
onInput
事件时,将去除所有非数字输入,并在“右”点自动插入破折号,假设xxx xxx xxxx是所需的输出


我使用了这种验证……检查粘贴的文本,如果它包含字母,则向用户显示错误,然后在延迟后清除该框,以便用户检查文本并进行适当的更改

$('#txtbox').on('paste', function (e) {
            var $this = $(this);
            setTimeout(function (e) {
                if (($this.val()).match(/[^0-9]/g))
                {
                    $("#errormsg").html("Only Numerical Characters allowed").show().delay(2500).fadeOut("slow");                       
                    setTimeout(function (e) {
                        $this.val(null);
                    },2500);
                }                   
            }, 5);
        });

您可以使用jQuery方法检查值是数值型还是其他类型

$.isNumeric()
范例

$.isNumeric("46")
$.isNumeric(46)
真的

真的


false

考虑到电话号码实际上不是一个数字,而是一个包含数字的字符串。用户会以奇怪的方式书写数字,如果你有一个全球应用程序,甚至更奇怪。请记住国家代码以00或+开头,+作为电话号码是有效的,但不是有效的号码。如果我不在主题中,很抱歉在这里,我花了太多时间在网站上填写“无效数字”。您还可以删除非数字字符,然后使用使用使用jquery
.val()
.length()
var valLength=$(this.val()的switch语句按照您的意愿构造输入.length;
在条件中。
切换(valLength){
然后在长度值处添加检查数值的大小写,或者使用regex条件if语句来标识长度数组中该
大小写:
值处的值是否为数值。为什么/Why不是regexp优于JQuery isNumeric()太棒了,我没有意识到这已经添加到jQuery中了。这应该是
$.isNumeric
?我已经尝试过了,但是如果你有长值(Int64),它就不起作用了,所以这只适用于正常的int值。$.isNumeric()不适用于数字前的+和-符号,也会忽略小数点。这是一个很好的选项,因为jQuery.isNumeric()不验证长值(Int64)。关于如何确保电话号码只包含数字值(Int64)的OPs原始问题,我认为重要的是要提到这一点值。电话号码表单输入最多有30个输入。对于美国电话输入,一个可能长得离谱的条目可能等于…(555)555-5555 ext:(5555)。因此,我们在示例字符串中总共使用了25个字符的位置。我们只需确保一个限制为25个位置的reg ex(int64)没有被不正确使用表单的人使用。只是说…在Firefox Quantum 59.0.2中不起作用,但是使用keydown代替。值得注意的是,使用keydown时,其他按键都不起作用。即使删除/退格也不起作用,这可能会导致一些用户体验问题。
$.isNumeric("46")
$.isNumeric(46)
$.isNumeric("dfd")