【问题标题】:jQuery function for check textbox用于检查文本框的 jQuery 函数
【发布时间】:2013-05-30 07:48:56
【问题描述】:

我想使用验证输入字段的 jquery 函数。此输入字段必须用于输入以 0 开头的 11 位数字。 我尝试了一些功能,但不起作用!

   function check(mob) {
        var firstnum = mob.substring(1);
        alert(firstnum);
        if (firstnum != "0" || mob.lenght != 11)
            return false;
        else
            return true;
    }

【问题讨论】:

  • 怎么不工作?有什么错误? (旁白:lenght 拼写错误)。
  • 如何检查文本框所有字符都是数字?
  • 如果你想检查它是否是一个数字,请尝试使用 RegEx
  • 我使用 RegEx 创建了一个答案 =)
  • @WingLeong 最糟糕。建议。永远。

标签: javascript jquery regex validation


【解决方案1】:
function check(mob) {
    return mob.substring(0, 1) == '0' && mob.length == 11;
}

String Method Reference

如果你想检查它是否是 11 位,你应该使用 RegExp

function check(mob) {
    return mob.match(/^0\d{10}$/) != null;
}

【讨论】:

  • startsWith 是在我的浏览器还不支持的 JavaScript v1.8.6 中引入的。
  • @andyb 感谢您的信息 =)
【解决方案2】:

您需要使用.charAt(0) 来获取字符串的第一个字符。 .substring(1) 将返回字符串的其余部分减去第一个字符。

"01234567890".substring(1) = "1234567890"

"01234567890".charAt(0) = "0"

"01234567890".length = 11 (assuming that you have spelled "length" correctly in your code)

编辑:由于您还需要检查数字,您可以使用正则表达式来验证这一点(尽管整体检查可以也可以用正则表达式完成)

因此,完成的功能可以简化为:

function isValidMobile(mobileNumber) {
    return mobileNumber.charAt(0) == 0 && mobileNumber.length === 11 && /^\d+$/.test(mobileNumber);
}

或者没有正则表达式

function isValidMobile(mobileNumber) {
    return mobileNumber.charAt(0) == 0 && mobileNumber.length === 11 && !isNaN(mobileNumber);
}

【讨论】:

  • 您没有验证所有字符是否都是数字
  • @RohitAgrawal 在投反对票之前甚至不给别人纠正答案的机会都是粗鲁的
  • 您在这里缺少主要逻辑,更新它,我将删除downvote
【解决方案3】:
if (firstnum >= 1 || mob.lenght <= 11)   //lenght  spell wrong 

改成

 if (firstnum >= 1 || mob.length<= 11) 

【讨论】:

    【解决方案4】:

    你可以试试

    function check(mob) {
        var num = parseInt(mob);
        if (mob+'' == '0'+num  && mob.length == 11)
            return true;
        else
            return false;
    }
    

    我在这里所做的是,如果所有字符都是数字,则 parseInt 会在没有 0 的情况下为您提供完全相同的数字,所以在我只是在开始和检查手机号码时添加 0 的情况下,它将执行 2验证一次,都是以0开头的数字,下一个验证是长度

    【讨论】:

      【解决方案5】:

      尝试使用如下简单的正则表达式

      function check(mob) {
          return /^0\d{10}$/.test(mob)
      }
      

      【讨论】:

        【解决方案6】:
        function check(mob) {
          if(!isNaN(mob)){ // or use parseInt
            var firstnum = mob.charAt(0);
            alert(firstnum);
        
            if (firstnum != "0" || mob.length != 11) {
                    return false;
               } else {
                    return true;
            } 
          }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-01
          • 1970-01-01
          • 2021-01-28
          • 1970-01-01
          • 2012-08-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多