如何通过我的函数编写正则表达式模式来验证自定义电话号码?

时间:2018-10-23 00:41:04

标签: javascript regex string validation pcre

我有自己的功能来检查电话号码:

function isPhoneNumber(phone) {
    var regexForPhoneWithCountryCode = /^[0-9+]*$/;
    var regexForPhoneWithOutCountryCode = /^[0-9]*$/;
    var tajikPhone = phone.substring(0,4);
    if(tajikPhone == "+161" && phone.length !== 13) {
        return false;
    } 
    if(phone.length == 9 && phone.match(regexForPhoneWithOutCountryCode)) {
        return true;
    } else if(phone.length > 12 && phone.length < 16 && phone.match(regexForPhoneWithCountryCode)) {
        return true;
    } else return false;
}

我的功能也可以工作,但不完全正确。

验证电话号码的规则:

  • 最大长度:13
  • 最小长度:9

当最大长度== 13时:

  • 仅包含: 0-9 +
  • 第一个charackter比赛: +
  • + ”之后的三个字符必须为: 161

当最大长度== 9时:

  • 仅包含: 0-9

有效数字示例:

  • +161674773312
  • 674773312

1 个答案:

答案 0 :(得分:1)

您可以使用的一种非常简单的方法是:

function isPhoneNumber(phone) {
    if (phone.match(/^(?:\+161)?\d{9}$/) {
        return true;
    } else {
        return false;
    }
}