Sau đây là biểu thức chính quy để khớp với ngày ở định dạng dd-MM-yyyy.
^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
Để khớp một ngày trong một chuỗi ở định dạng đó.
-
Biên dịch biểu thức trên của phương thức compile () của lớp Pattern.
-
Lấy đối tượng Matcher bỏ qua chuỗi đầu vào bắt buộc làm tham số cho phương thức matcher () của lớp Pattern.
-
Phương thức match () của lớp Matcher trả về true nếu một so khớp xảy ra khác thì nó trả về false. Do đó, hãy gọi phương thức này để xác thực dữ liệu.
Ví dụ 1
import java.util.regex.Matcher; import java.util.regex.Pattern; public class MatchingDate { public static void main(String[] args) { String date = "01/12/2019"; String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(date); boolean bool = matcher.matches(); if(bool) { System.out.println("Date is valid"); } else { System.out.println("Date is not valid"); } } }
Đầu ra
Date is valid
Phương thức match () của lớp String chấp nhận một biểu thức chính quy và so khớp chuỗi hiện tại với nó và trả về true trong trường hợp so khớp và phương thức khác trả về false. Do đó, để xác minh xem ngày đã cho (ở định dạng chuỗi) có ở định dạng bắt buộc hay không -
- Lấy chuỗi ngày.
- Gọi phương thức match () trên đó bằng cách chuyển biểu thức chính quy ở trên làm tham số cho nó.
Ví dụ 2
import java.util.Scanner; public class Just { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter your name: "); String name = sc.nextLine(); System.out.println("Enter your Date of birth: "); String dob = sc.nextLine(); //Regular expression to accept date in MM-DD-YYY format String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$"; boolean result = dob.matches(regex); if(result) { System.out.println("Given date of birth is valid"); } else { System.out.println("Given date of birth is not valid"); } } }
Đầu ra 1
Enter your name: Janaki Enter your Date of birth: 26/09/1989 Given date of birth is not valid
Đầu ra 2
Enter your name: Janaki Enter your Date of birth: 09/26/1989 Given date of birth is valid