用户名合法判断

用户名合法判断

在开发中经常设计用户名是否合法判断,判断的规则基本一致,采用正则进行判断。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.regex.Pattern;

public class AccountValidation {

public static boolean isValidAccount(String account) {
// 定义只能包含字母、数字和下划线的正则表达式
String regex = "^[a-zA-Z0-9_]+$";

// 编译正则表达式为 Pattern 对象
Pattern pattern = Pattern.compile(regex);

// 使用 Pattern 对象匹配账户名
return pattern.matcher(account).matches();
}

public static void main(String[] args) {
// 测试账户名是否有效
String account1 = "user123"; // 有效账户名
String account2 = "user@123"; // 包含特殊字符的账户名

System.out.println(account1 + " is valid: " + isValidAccount(account1)); // 输出: true
System.out.println(account2 + " is valid: " + isValidAccount(account2)); // 输出: false
}
}

封装为工具类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.regex.Pattern;

public class AccountValidation {

// 静态常量,定义只能包含字母、数字和下划线的正则表达式
private static final String ACCOUNT_REGEX = "^[a-zA-Z0-9_]+$";
// 预编译正则表达式为 Pattern 对象,提高效率
private static final Pattern pattern = Pattern.compile(ACCOUNT_REGEX);

/**
* 验证账户名是否有效
*
* @param account 要验证的账户名
* @return 如果账户名有效,返回 true;否则返回 false
*/
public static boolean isValidAccount(String account) {
// 使用预编译的 Pattern 对象匹配账户名
return pattern.matcher(account).matches();
}



/**
* 测试账户名验证的示例
*/
public static void main(String[] args) {
// 测试账户名是否有效
String account1 = "user123"; // 有效账户名
String account2 = "user@123"; // 包含特殊字符的账户名

// 输出验证结果
System.out.println(account1 + " is valid: " + isValidAccount(account1)); // 输出: true
System.out.println(account2 + " is valid: " + isValidAccount(account2)); // 输出: false
}
}