Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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_Regex - Fatal编程技术网

Javascript jQuery验证电话号码前缀

Javascript jQuery验证电话号码前缀,javascript,jquery,regex,Javascript,Jquery,Regex,我是jQuery验证方法的新手,我希望能够检查前缀。我试过了,但没用。有人能帮忙吗 条件:- 必须从158或131或189开始 例如: 158xxxxxxx、131xxxxxxx、189xxxxxxx 必须等于11个字符 只有数字,没有字母或其他字符 这就是我所做的: $.validator.addMethod("mobile_phone", function (value, element) { value = value.replace(/\s+/g, ""); re

我是jQuery验证方法的新手,我希望能够检查前缀。我试过了,但没用。有人能帮忙吗

条件:-

  • 必须从158或131或189开始
例如: 158xxxxxxx、131xxxxxxx、189xxxxxxx

  • 必须等于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,
}
你可以使用正则表达式

^1(58|31|89)[0-9]{8}$
^1(?:58|31|89)\d{8}$
说明:

  • ^
    :行的开始
  • 1
    :逐字匹配1
  • (58 | 31 | 89)
    :或条件,与条件中的任何一个匹配
  • [0-9]{8}
    :匹配0到9之间的任意数字,八次
  • $
    :行尾
  • 正则表达式演示:

    输入:无效{
    颜色:红色;
    }
    输入:有效{
    颜色:绿色;
    }
    您可以使用regex

    ^1(58|31|89)[0-9]{8}$
    
    ^1(?:58|31|89)\d{8}$
    
    这明确地将第二和第三名限制为您的要求中所述的组合58、31、89。接受的答案允许自由组合第二位和第三位,例如允许159作为起始数字。

    value=value。替换(/\s+/g,“”)
    ,我建议使用
    \d+
    ,它将删除所有非数字字符。