有以下案例:
1 需求:校验qq号码。要求必须是5-15位数;0不能开头;非正则表达式实现;正则表达式实现
package com.xawl.demo;
import java.util.Scanner;
/**
* @Author:liger
* @Description:爱学Java
*/
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入QQ号码");
String s = sc.nextLine(); //输入的QQ号码
boolean flag = checkQQNum(s);
if (flag) {
System.out.println("QQ号码输入规则正确");
} else {
System.out.println("QQ号码输入规则有误");
}
}
//正则表达式校验
private static boolean checkQQNum(String s) {
String regx = "[1-9][0-9]{4-14}";
boolean matches = s.matches(regx);
return matches;
}
//普通方式校验
private static boolean checkQQNum(String s) {
boolean flag = false;
if (s.length() >= 5 && s.length() <= 15 && !s.startsWith("0")) {
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch >= '0' && ch <= '9') {
flag = true;
} else {
flag = false;
break;
}
}
}
return flag;
}
}
2
验证输入的手机号码是否符合规则;需求:手机号码位数是11位,且只能以1开头,第二位只能是3,5,7,8其中的一个;只能是数字;正则表达式实现。
package com.xawl.demo;
import java.util.Scanner;
/**
* @Author:liger
* @Description:爱学Java
*/
public class Test02 {
public static void main(String[] args) {
/*验证输入的手机号码是否符合规则;需求:手机号码位数是11位,且只能以1开头,
第二位只能是3,5,7,8其中的一个;只能是数字;正则表达式实现。*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入手机号码");
String s = sc.nextLine();
boolean flag=checkNUm(s);
if (flag){
System.out.println("手机号码规则正确");
}else{
System.out.println("手机号码输入规则有误");
}
}
//正则表达式
private static boolean checkNUm(String s) {
String regx="[1][3,5,7,8][0-9]{9}";
boolean matches = s.matches(regx);
return matches;
}
}
3 邮箱格式验证:正则表达式
package com.xawl.demo;
import java.util.Scanner;
/**
* @Author:liger
* @Description:爱学Java
*/
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入邮箱地址");
String s = sc.nextLine();
boolean flag= checkNum(s);
if (flag){
System.out.println("邮箱格式正确");
}else{
System.out.println("邮箱格式有误");
}
}
private static boolean checkNum(String s) {
// 6 ~18 个字符,可使用字母、数字、下划线,需以字母开头
String regx="[a-z][\\w]{5,17}[@][0-9a-z]{2,10}[\\.](com|cn|net|org)";
boolean matches = s.matches(regx);
return matches;
}
}