一然爆、用正則表達(dá)式寫的簡(jiǎn)單的注冊(cè)驗(yàn)證,具體要求如下:
用戶注冊(cè)驗(yàn)證(用戶名黍图,密碼曾雕,昵稱,中文名字助被,手機(jī)號(hào)剖张,郵箱)所有信息符合以下條件才允許注冊(cè):
- 用戶名格式:由字母數(shù)字下劃線組成且開頭必須是字母,不能超過(guò)16位揩环;
- 密碼格式:字母和數(shù)字構(gòu)成搔弄,不能超過(guò)16位;
- 昵稱:字母和數(shù)字構(gòu)成長(zhǎng)度大于6小于10检盼;
- 手機(jī)號(hào):全數(shù)字肯污,長(zhǎng)度為11位;
- 郵箱:必須包含@符號(hào)吨枉;必須包含點(diǎn)蹦渣;點(diǎn)和@之間必須有字符;
所有信息符合上述條件才允許注冊(cè)貌亭。
二柬唯、代碼如下:
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("------用戶注冊(cè)------");
//匹配用戶名
System.out.println("用戶名: ---(由字母數(shù)字下劃線組成且開頭必須是字母,不能超過(guò)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)成圃庭,不能超過(guò)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)成長(zhǎng)度大于6小于10) ");
String nicheng = sc.nextLine();
p = Pattern.compile("[a-zA-Z0-9]{7,9}");
m = p.matcher(nicheng);
flag = m.matches();
//匹配手機(jī)號(hào)
System.out.println("手機(jī)號(hào): ---(全數(shù)字锄奢,長(zhǎng)度為11位)");
String phone = sc.nextLine();
p = Pattern.compile("[0-9]{11}");
m = p.matcher(phone);
flag = m.matches();
//匹配郵箱
System.out.println("郵箱: ---(必須包含@符號(hào);必須包含點(diǎn)剧腻;點(diǎn)和@之間必須有字符)");
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("注冊(cè)成功");
} else {
System.out.println("信息填寫不正確拘央!");
}
sc.close();
}
}