一、用正則表達式寫的簡單的注冊驗證,具體要求如下:
用戶注冊驗證(用戶名,密碼,昵稱,中文名字,手機號,郵箱)所有信息符合以下條件才允許注冊:
- 用戶名格式:由字母數(shù)字下劃線組成且開頭必須是字母,不能超過16位;
- 密碼格式:字母和數(shù)字構(gòu)成,不能超過16位;
- 昵稱:字母和數(shù)字構(gòu)成長度大于6小于10;
- 手機號:全數(shù)字,長度為11位;
- 郵箱:必須包含@符號;必須包含點;點和@之間必須有字符;
所有信息符合上述條件才允許注冊。
二、代碼如下:
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern p = null;
Matcher m = null;
boolean flag = true;
Scanner sc = new Scanner(System.in);
System.out.println("------用戶注冊------");
//匹配用戶名
System.out.println("用戶名: ---(由字母數(shù)字下劃線組成且開頭必須是字母,不能超過16位)");
String name = sc.nextLine();
p = Pattern.compile("[a-zA-Z]{1}[a-zA-Z0-9_]{1,15}");
m = p.matcher(name);
flag = m.matches();
//匹配密碼
System.out.println("密碼:---(字母和數(shù)字構(gòu)成,不能超過16位)");
String pass = sc.nextLine();
p = Pattern.compile("[a-zA-Z0-9]{1,16}");
m = p.matcher(pass);
flag = m.matches();
//匹配昵稱
System.out.println("昵稱: ---(字母和數(shù)字構(gòu)成長度大于6小于10) ");
String nicheng = sc.nextLine();
p = Pattern.compile("[a-zA-Z0-9]{7,9}");
m = p.matcher(nicheng);
flag = m.matches();
//匹配手機號
System.out.println("手機號: ---(全數(shù)字,長度為11位)");
String phone = sc.nextLine();
p = Pattern.compile("[0-9]{11}");
m = p.matcher(phone);
flag = m.matches();
//匹配郵箱
System.out.println("郵箱: ---(必須包含@符號;必須包含點;點和@之間必須有字符)");
String email = sc.nextLine();
p = Pattern.compile("[@]{1}[a-zA-Z0-9]+[.]+[a-z]+");
m = p.matcher(email);
flag = m.matches();
if(flag) {
System.out.println("注冊成功");
} else {
System.out.println("信息填寫不正確!");
}
sc.close();
}
}