一、需求描述
要求用正则表达式校验用户输入的电话、邮箱和时间是否合法。
二、代码实现
package com.itheima.regex;
import java.util.Scanner;
public class TestCase1 {
public static void main(String[] args) {
// CheckPhone();
// CheckEmail();
CheckTime();
}
//校验手机号/座机号
public static void CheckPhone(){
System.out.println("请输入您的手机号码/座机号:");
Scanner sc = new Scanner(System.in);
//手机号/座机号的形式:18215176775 010-1234567 0102312345
while (true) {
String phone = sc.nextLine();
if (phone.matches("(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})")){
System.out.println("您输入的手机号码格式正确");
break;
} else {
System.out.println("您输入的手机号格式不正确,请您重新输入:");
}
}
}
//校验邮箱
public static void CheckEmail(){
System.out.println("请输入您的邮箱号:");
Scanner sc = new Scanner(System.in);
//邮箱格式:zhuonili@163.com 2865443@qq.com itheima@ittest.com.cn
while (true) {
String email = sc.nextLine();
if (email.matches("\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}")){
System.out.println("您输入的邮箱格式正确");
break;
} else {
System.out.println("您输入的邮箱格式不正确,请您重新输入:");
}
}
}
//校验时间是否合法
public static void CheckTime(){
System.out.println("请您输入一个时间:");
Scanner sc = new Scanner(System.in);
//时间格式:0:00 1:59 23:59:59
while (true) {
String time = sc.nextLine();
//2[0-3]|[0-1]?\\d这里如果不加括号会出bug
if (time.matches("(2[0-3]|[0-1]?\\d)(:[0-5]\\d){1,2}")){
System.out.println("您输入的时间格式正确");
break;
} else {
System.out.println("您输入的时间格式不正确,请您重新输入:");
}
}
}
}