jQuery验证电话号码前缀

时间:2015-12-29 08:19:54

标签: javascript jquery regex

我是jQuery验证方法的新手,我希望让它检查前缀。我尝试过这样做,但它不起作用。有人可以帮忙吗?

条件: -

  • 必须以158或131或189
  • 开始

实施例: 158XXXXXXXX,131XXXXXXXX,189XXXXXXXX

  • 必须等于11个字符
  • 仅限数字,无字母或其他字符

这就是我所做的:

$.validator.addMethod("mobile_phone", function (value, element) {
    value = value.replace(/\s+/g, "");
    return this.optional(element) || /^158\d{8}$/.test(value);
});

fr_contact_number: {
    required: true,
    number: true,
    mobile_phone: true,
    minlength: 11,
    maxlength: 11,
}

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式

^1(58|31|89)[0-9]{8}$

<强>解释

  1. ^:行首
  2. 1:按字面意思匹配
  3. (58|31|89):OR条件,匹配条件中的任何一个
  4. [0-9]{8}:匹配0到9之间的任何数字,八次
  5. $:行尾
  6. 正则表达式演示:

    input:invalid {
      color: red;
    }
    input:valid {
      color: green;
    }
    <input pattern="1(58|31|89)[0-9]{8}" />

答案 1 :(得分:1)

您可以使用正则表达式

^1(?:58|31|89)\d{8}$

这明确地将第二和第三位限制为您的要求中所述的组合58,31,89。接受的答案允许自由地组合第二和第三位,例如允许159作为起始号码。