[Thực hành] Validate account

String & Regex

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ệuMô 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ệ

  1. 123abc_
  2. _abc123
  3. ______
  4. 123456
  5. abcdefg

Bước 4: Xây dựng mẫu account không hợp lệ

  1. .@
  2. 12345
  3. 1234_
  4. 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

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *