use regex::Regex;
pub fn is_id_card(card_number: &str) -> bool {
let re = Regex::new(
r"^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$",
)
.unwrap();
re.is_match(card_number)
}
pub fn is_hongkong_id_card(card_number: &str) -> bool {
let re = Regex::new(r"^[a-zA-Z]\d{6}\([\dA]\)$").unwrap();
re.is_match(card_number)
}
pub fn is_macau_id_card(card_number: &str) -> bool {
let re = Regex::new(r"^[1|5|7]\d{6}\(\d\)$").unwrap();
re.is_match(card_number)
}
pub fn is_taiwan_id_card(card_number: &str) -> bool {
let re = Regex::new(r"^[a-zA-Z][0-9]{9}$").unwrap();
re.is_match(card_number)
}