📜  门|门 IT 2007 |第 62 题(1)

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

门|门 IT 2007 第 62 题

这是门|门 IT 2007比赛的第62题,需要编写一个程序来判断输入的字符串是否是合法的手机号码。

题目描述

请编写一个函数 isValidPhone(str),用于判断str是否是合法的中国大陆手机号码。

一个合法的手机号码应当满足以下条件:

  1. 由11个数字组成;
  2. 第一位数字是1;
  3. 第2-3位数字是3、4、5、6、7、8、9中的一个;
  4. 第4-7位数字是0-9中的一个;
  5. 第8-11位数字是0-9中的一个。
输入格式

函数的输入str为一个字符串,表示要检查的手机号。

输出格式

函数需要返回一个布尔值,表示输入的手机号是否合法。

输入样例
isValidPhone('18812345678') // true
isValidPhone('19812345678') // false
isValidPhone('188123456789') // false
isValidPhone('1881234567a') // false
输出样例
true
false
false
false
解题思路

判断字符串是否是合法的手机号码,其实就是要求字符串满足一定的正则表达式规则。根据题目的要求,可以得出一个正则表达式:

/^1[3456789]\d{9}$/

这个正则表达式的意思是:以1开头,第二位为3、4、5、6、7、8、9中的一个,后跟9个任意数字。

因此,只需要在函数中使用正则表达式进行匹配即可判断输入的字符串是否合法。

代码实现
function isValidPhone(str) {
  const pattern = /^1[3456789]\d{9}$/;
  return pattern.test(str);
}

// 测试样例
console.log(isValidPhone('18812345678')); // true
console.log(isValidPhone('19812345678')); // false
console.log(isValidPhone('188123456789')); // false
console.log(isValidPhone('1881234567a')); // false

以上是本题解的内容,希望对你有帮助。