📌  相关文章
📜  正则表达式来验证给定的输入是否是有效的印度手机号码 - Javascript(1)

📅  最后修改于: 2023-12-03 15:40:38.718000             🧑  作者: Mango

正则表达式验证印度手机号码 - Javascript

在印度,手机号码的格式为10位数字,前两位数字组合为以下任意一种:

  • 7,8,9 (例如:9834278927)
  • 6后面接0,1,3,4,5,6,7,8,9(例如:6234567890)

我们可以使用正则表达式在Javascript中对输入的印度手机号码进行验证。

正则表达式
/^(?:(?:\+|0{0,2})91(\s*[-]\s*)?|[0]?)?[6789]\d{9}$/
解释

该正则表达式由以下部分组成:

  • ^(?::开始匹配,(?: 表示非捕获括号,只做匹配,不作为分组,避免影响后面的括号分组。
  • (?:\+|0{0,2})?:一个非捕获括号,表示号码开头可能是加号或者 0~2 个零。
  • 91(\s*[-]\s*)?:一个包含国家码 (91) 的非捕获括号,后面跟着的? 表示该组出现 0 次或者 1 次。 \s 表示任意空白字符(空格、制表符、换行符等),* 表示出现 0 次或多次。[-] 表示匹配一个-,因为- 是一个特殊字符,需要用反斜杠转义。
  • |[0]?)?:一个非捕获括号,主要是为了兼容没有国家码的情况,也是可选的。同样,? 表示可能出现 0 次或者 1 次。
  • [6789]:接下来是第一位数字,必须是 6、7、8 或 9。
  • \d{9}:接下来跟着 9 个数字即可。
  • $:结束匹配。
代码示例

以下是在Javascript中使用该正则表达式的代码示例:

function isValidIndianPhoneNumber(phoneNumber) {
  const regex = /^(?:(?:\+|0{0,2})91(\s*[-]\s*)?|[0]?)?[6789]\d{9}$/;
  return regex.test(phoneNumber);
}

// 示例使用:
console.log(isValidIndianPhoneNumber("9834278927")); // true
console.log(isValidIndianPhoneNumber("+919834278927")); //true
console.log(isValidIndianPhoneNumber("09834278927")); //true
console.log(isValidIndianPhoneNumber("6234567890")); //true
console.log(isValidIndianPhoneNumber("6798498034")); //false
console.log(isValidIndianPhoneNumber("923456789")); //false
总结

在Javascript中,我们可以使用正则表达式方便地对印度手机号码进行验证。这也可以应用到其他类型的手机号码验证中。