【问题标题】:javascript cell number validationjavascript 单元格号码验证
【发布时间】:2013-09-27 20:22:20
【问题描述】:

我想使用 JavaScript 验证手机号码。

这是我的代码。

if(number.value == "") {
    window.alert("Error: Cell number must not be null.");
    number.focus();
    return false;
}

if(number.length != 10) {
    window.alert("Phone number must be 10 digits.");
    number.focus();
    return false;
}

这里的问题是,当我在没有输入电话号码的情况下提交表单时,它显示错误手机号码不能为空。它工作正常。

当我提交的手机号码少于 10 位的表格时,它显示电话号码必须是 10 位。也不错。

问题是当我提交 10 位数字的表单时,它也显示错误电话号码必须是 10 位数字。

请帮助我。 谢谢。

并且还需要验证码仅用于手机号码的数字。

【问题讨论】:

  • 也许你需要做number.value.length
  • 另请注意,电话号码的格式和长度因国家和时间而异

标签: javascript


【解决方案1】:

如果number 是您的表单元素,那么它的长度将为undefined,因为元素没有长度。你想要的

if (number.value.length != 10) { ... }

不过,一次完成所有验证的更简单方法是使用正则表达式:

var val = number.value
if (/^\d{10}$/.test(val)) {
    // value is ok, use it
} else {
    alert("Invalid number; must be ten digits")
    number.focus()
    return false
}

\d 表示“数字”,{10} 表示“十次”。 ^$ 将其锚定到开头和结尾,因此 asdf1234567890asdf 之类的内容不匹配。

【讨论】:

  • 它在某种程度上有效,但是当我输入超过 10 位数字时。它没有显示错误消息。为什么?而且,如果我输入 10 位数字以及更多其他字符,则不会显示错误消息。
  • 它与用户给出的答案一起工作:sushain97 谢谢你们俩。
  • @sapan 对不起,我修好了。它现在应该显示超过十位数的错误消息。
  • 再次感谢您的帮助。
【解决方案2】:
function IsMobileNumber(txtMobId) {
    var mob = /^[1-9]{1}[0-9]{9}$/;
    var txtMobile = document.getElementById(txtMobId);
    if (mob.test(txtMobile.value) == false) {
        alert("Please enter valid mobile number.");
        txtMobile.focus();
        return false;
    }
    return true;
}

来电验证手机号码功能HTML代码-

【讨论】:

    【解决方案3】:

    function isNumber(evt) {
      evt = (evt) ? evt : window.event;
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        alert("Please enter only Numbers.");
        return false;
      }
    
      return true;
    }
    
    function ValidateNo() {
      var phoneNo = document.getElementById('txtPhoneNo');
    
      if (phoneNo.value == "" || phoneNo.value == null) {
        alert("Please enter your Mobile No.");
        return false;
      }
      if (phoneNo.value.length < 10 || phoneNo.value.length > 10) {
        alert("Mobile No. is not valid, Please Enter 10 Digit Mobile No.");
        return false;
      }
    
      alert("Success ");
      return true;
    }
    <input id="txtPhoneNo" type="text" onkeypress="return isNumber(event)" />
    <input type="button" value="Submit" onclick="ValidateNo();">

    【讨论】:

      【解决方案4】:

      如果你输入:

      if { number.value.length!= 10}...     
      

      它肯定会起作用,因为值是从对象驱动的数量。

      【讨论】:

        【解决方案5】:

        此功能检查按键时的特殊chars,如果不是number则消除该值

        function mobilevalid(id) {
        
            var feild = document.getElementById(id);
        
            if (isNaN(feild.value) == false) {
                if (feild.value.length == 1) {
                    if (feild.value < 7) {
                        feild.value = "";
                    }
                } else if (feild.value.length > 10) {
                    feild.value = feild.value.substr(0, feild.value.length - 1);
                }
                if (feild.value.charAt(0) < 7) {
                    feild.value = "";
                }
            } else {
                feild.value = "";
            }
        
        }
        

        【讨论】:

          【解决方案6】:

          验证此代码: 它适用于 ms crm 2016 表单中电话号码字段的更改。

          function validatePhoneNumber() {
          
              var mob = Xrm.Page.getAttribute("gen_phone").getValue();
              var length = mob.length;
              if (length < 10 || length > 10) {
                  alert("Please Enter 10 Digit Number:");
                  Xrm.Page.getAttribute("gen_phone").setValue(null);
                  return true;
              }
              if (mob > 31 && (mob < 48 || mob > 57)) {} else {
                  alert("Please Enter 10 Digit Number:");
                  Xrm.Page.getAttribute("gen_phone").setValue(null);
                  return true;
              }
          }
          

          【讨论】:

            【解决方案7】:
            <script type="text/javascript">
                function MobileNoValidation()
                {
                   var phno=/^\d{10}$/
                   if(textMobileNo.value=="")
                   {
                    alert("Mobile No Should Not Be Empty");
                   }
                   else if(!textMobileNo.value.match(phno))
                   {
                    alert("Mobile no must be ten digit");
                   }
                   else
                   {
                    alert("valid Mobile No");
                   }
                }
            </script>
            

            【讨论】:

            • 嗨,欢迎来到 Stack Overflow。在回答已经有很多答案的问题时,请务必添加一些额外的见解,说明为什么您提供的回复是实质性的,而不是简单地呼应原始发帖人已经审查过的内容。这在您提供的“纯代码”答案中尤其重要。
            【解决方案8】:

            我使用了以下代码。

            var mobileNumber=parseInt(no)
              if(!mobileNumber || mobileNumber.toString().length!=10){
              Alert("Please provide 10 Digit numeric value")
            }
            

            如果手机号码不是号码,则给NaN值。

            【讨论】:

            • 我正在从 csv 表中读取数字,所以为了验证我使用了这种方法。因为人们也可以发送字符串值。所以我解析它然后转换为字符串进行长度检查。
            【解决方案9】:
            <script>
                function validate() {
                    var phone=document.getElementById("phone").value;
                    if(isNaN(phone))
                    {
                        alert("please enter digits only");
                    }
            
                    else if(phone.length!=10)
                    {
                        alert("invalid mobile number");
                    }
                    else
                    {
                        confirm("hello your mobile number is" +" "+phone);
                    }
            </script>
            

            【讨论】:

              猜你喜欢
              • 2015-04-23
              • 2011-05-09
              • 1970-01-01
              • 2011-09-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多