字符串

35 阅读1分钟
object Main {
  def main(args: Array[String]): Unit = {
    // 更全面的手机号正则(包含所有当前有效的号段)
    val reg = "^1(3[0-9]|4[5-9]|5[0-3,5-9]|6[2567]|7[0-8]|8[0-9]|9[0-3,5-9])\\d{8}$".r

    val testNumbers = List(
      "13012345678",  // 有效
      "14512345678",  // 有效
      "15012345678",  // 有效
      "16612345678",  // 有效
      "17112345678",  // 有效
      "18812345678",  // 有效
      "19912345678",  // 有效
      "12012345678",  // 无效
      "14912345678"   // 无效
    )

    println("手机号验证结果:")
    testNumbers.foreach { number =>
      println(s"$number : ${if (reg.findFirstIn(number).isDefined) "有效" else "无效"}")
    }
  }
}
val reg = "^1[3-9]\d{9}$".r

解释:

  • ^:字符串开始
  • 1:以1开头
  • [3-9]:第二位是3-9之间的数字
  • \d{9}:后面跟9个数字
  1. $:字符串结束

完整的Scala代码示例:

scala

object Main {
  def main(args: Array[String]): Unit = {
    val reg = "^1[3-9]\d{9}$".r
    
    // 测试手机号
    val testNumbers = List(
      "13812345678",  // 有效
      "13912345678",  // 有效
      "15012345678",  // 有效
      "19912345678",  // 有效
      "12012345678",  // 无效:第二位是2
      "11234567890",  // 无效:第二位是1
      "1381234567",   // 无效:只有10位
      "138123456789"  // 无效:有12位
    )
    
    println("手机号验证结果:")
    testNumbers.foreach { number =>
      println(s"$number : ${if (reg.findFirstIn(number).isDefined) "有效" else "无效"}")
    }
  }
}

运行结果:

text

手机号验证结果:
13812345678 : 有效
13912345678 : 有效
15012345678 : 有效
19912345678 : 有效
12012345678 : 无效
11234567890 : 无效
1381234567 : 无效
138123456789 : 无效