📅  最后修改于: 2023-12-03 15:40:38.718000             🧑  作者: Mango
在印度,手机号码的格式为10位数字,前两位数字组合为以下任意一种:
我们可以使用正则表达式在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中,我们可以使用正则表达式方便地对印度手机号码进行验证。这也可以应用到其他类型的手机号码验证中。