Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ยอมรับสตริงวันที่ (รูปแบบ MM-dd-yyyy) โดยใช้ Java regex หรือไม่


ต่อไปนี้คือนิพจน์ทั่วไปที่ตรงกับวันที่ในรูปแบบ dd-MM-yyyy

^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$

เพื่อจับคู่วันที่ในสตริงในรูปแบบนั้น

  • รวบรวมนิพจน์ข้างต้นของวิธีการคอมไพล์ () ของคลาส Pattern

  • รับออบเจ็กต์ Matcher ที่ข้ามสตริงอินพุตที่ต้องการเป็นพารามิเตอร์ไปยังเมธอด matcher() ของคลาส Pattern

  • เมธอดmatch() ของคลาส Matcher จะคืนค่า จริง หากการจับคู่เกิดขึ้น มิฉะนั้น จะส่งกลับค่า เท็จ ดังนั้น เรียกใช้วิธีนี้เพื่อตรวจสอบข้อมูล

ตัวอย่างที่ 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");
      }
   }
}

ผลลัพธ์

Date is valid

วิธีmatch() ของคลาส String ยอมรับนิพจน์ปกติและจับคู่สตริงปัจจุบันกับมันและคืนค่า true ในกรณีของการจับคู่และมิฉะนั้นจะคืนค่าเท็จ ดังนั้นเพื่อตรวจสอบว่าวันที่ที่กำหนด (ในรูปแบบสตริง) อยู่ในรูปแบบที่ต้องการหรือไม่ -

  • รับสตริงวันที่
  • เรียกใช้เมธอดmatch() โดยส่งนิพจน์ทั่วไปด้านบนเป็นพารามิเตอร์ไปที่มัน

ตัวอย่างที่ 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");
      }
   }
}

ผลลัพธ์ 1

Enter your name:
Janaki
Enter your Date of birth:
26/09/1989
Given date of birth is not valid

ผลลัพธ์ 2

Enter your name:
Janaki
Enter your Date of birth:
09/26/1989
Given date of birth is valid