一、用正则表达式写的简单的注册验证,具体要求如下:
用户注册验证(用户名,密码,昵称,中文名字,手机号,邮箱)所有信息符合以下条件才允许注册:
- 用户名格式:由字母数字下划线组成且开头必须是字母,不能超过16位;
- 密码格式:字母和数字构成,不能超过16位;
- 昵称:字母和数字构成长度大于6小于10;
- 手机号:全数字,长度为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("用户名: ---(由字母数字下划线组成且开头必须是字母,不能超过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("密码:---(字母和数字构成,不能超过16位)");
String pass = sc.nextLine();
p = Pattern.compile("[a-zA-Z0-9]{1,16}");
m = p.matcher(pass);
flag = m.matches();
//匹配昵称
System.out.println("昵称: ---(字母和数字构成长度大于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("手机号: ---(全数字,长度为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();
}
}