NỘI DUNG BÀI VIẾT
Mục tiêu
Luyện tập sử dụng RegularExpression.
Mô tả
Viết phương thức để kiểm tra tính hợp lệ của tên tài khoản.
Một tài khoản hợp lệ cần đạt các yêu cầu sau:
- Không chứa các ký tự đặc biệt
- Ít nhất là 6 ký tự
- Không chứa các ký tự viết hoa
- Cho phép dấu gạch dưới (_)
Hướng dẫn
Bước 1: Tạo Pattern
Chúng ta có Email Regular Expression Pattern như sau:
^[_a-z0-9]{6,}$
Mô tả
Ký hiệu | Mô tả |
^ | Bắt đầu chuỗi regex |
[_a-z0-9] | Ký tự cho phép dấu gạch dưới (_) chỉ là các chữ thường từ a-z hoặc 0-9 |
{6,} | Ít nhất là 6 ký tự |
$ | Kết thúc chuỗi regex |
Bước 2: Tạo lớp AccountExample
Ở đây ta tạo một biến static String ACCOUNT_REGEX chứa định dạng regularExpression của tài khoản. Sau đó tạo một phương thức validate để kiểm tra tài tài khoản cần kiểm tra có hợp lệ với ACCOUNT_REGEX đã định nghĩa hay không.
public class AccountExample { /*Không chứa các ký tự đặc biệt Phải dài hơn 6 ký tự Không chứa các ký tự viết hoa Cho phép dấu gạch dưới (_) */ private static final String ACCOUNT_REGEX = "^[_a-z0-9]{6,}$"; public AccountExample() { } public boolean validate(String regex) { Pattern pattern = Pattern.compile(ACCOUNT_REGEX); Matcher matcher = pattern.matcher(regex); return matcher.matches(); } }
Bước 3: Xây dựng mẫu account hợp lệ
- 123abc_
- _abc123
- ______
- 123456
- abcdefg
Bước 4: Xây dựng mẫu account không hợp lệ
- .@
- 12345
- 1234_
- abcde
Bước 5: Tạo lớp kiểm thử AccountExampleTest
public class AccountExampleTest { private static AccountExample accountExample; public static final String[] validAccount = new String[] { "123abc_", "_abc123", "______", "123456","abcdefgh" }; public static final String[] invalidAccount = new String[] { ".@", "12345", "1234_", "abcde" }; public static void main(String args[]) { accountExample = new AccountExample(); for (String account : validAccount) { boolean isvalid = accountExample.validate(account); System.out.println("Account is " + account +" is valid: "+ isvalid); } for (String account : invalidAccount) { boolean isvalid = accountExample.validate(account); System.out.println("Account is " + account +" is valid: "+ isvalid); } } }
Kết quả khi thực thi kiểm thử
Account is 123abc_ is valid: true Account is _abc123 is valid: true Account is _______ is valid: true Account is 123456 is valid: true Account is abcdefg is valid: true Account is .@ is valid: false Account is 12345 is valid: false Account is 1234_ is valid: false Account is abcde is valid: false