2

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

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

6 回答 6

1

您需要使用.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);
}
于 2013-05-30T07:54:54.027 回答
1
function check(mob) {
    return mob.substring(0, 1) == '0' && mob.length == 11;
}

字符串方法参考

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

function check(mob) {
    return mob.match(/^0\d{10}$/) != null;
}
于 2013-05-30T07:58:10.270 回答
0
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;
    } 
  }
}
于 2013-05-30T07:55:56.277 回答
0
if (firstnum >= 1 || mob.lenght <= 11)   //lenght  spell wrong 

改成

 if (firstnum >= 1 || mob.length<= 11) 
于 2013-05-30T07:51:57.087 回答
0

你可以试一试

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

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

于 2013-05-30T08:01:22.990 回答
0

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

function check(mob) {
    return /^0\d{10}$/.test(mob)
}
于 2013-05-30T08:13:24.733 回答