首頁 >後端開發 >php教程 >PHP正規表示式驗證身分證號碼的生日訊息

PHP正規表示式驗證身分證號碼的生日訊息

王林
王林原創
2023-06-24 14:22:031490瀏覽

身分證號碼是我們日常生活中常用到的一種身分證明工具,而其中所包含的生日資訊也是非常重要的。在使用PHP進行身分證號碼驗證時,我們常常需要判斷其生日資訊是否正確。本文將介紹如何使用PHP正規表示式驗證身分證號碼的生日資訊。

1、身分證號碼的基本格式

身分證號碼是由18位數字和字母組成的字串,其中最後一位可能是數字或字母,可能是大寫或小寫。前17位是身分證的主體部分,其中包含了身分證的地區、出生年月、性別等資訊。身分證號碼的基本格式如下:

6位元地區代碼8位元出生年月日3位數順序碼1位元校驗碼

其中,出生年月日採純數位格式,如19880101,所以我們可以透過正規表示式將身分證號碼的18位元字串拆分成以下四個部分:

$region_code // 6位元地區代碼
$birthday // 8位出生年月日
$sequence_code // 3位元順序碼
$verify_code // 1位元校驗碼

2、PHP正規表示式驗證生日訊息

#在驗證當身分證字號的生日資料時,我們需要使用正規表示式來擷取其中的出生年月日,然後判斷其是否符合指定的格式。

在身分證號碼中,出生年月日的位置為第7位到第14位,因此我們可以使用substr()函數來擷取其中的8位字串,然後使用正規表示式進行驗證。

以下是驗證出生年月日的正規表示式:

$birthday_pattern = '/^(19d{2}|20d{2})(0[1-9]|1 [012])(0[1-9]|[12]d|3[01])$/';

其中:

^:表示符合字串的開頭
(19d{2}|20d{2}):表示符合19XX或20XX的年份
(0[1-9]|1[012]):表示符合01-12月份
(0[1 -9]|[12]d|3[01]):表示符合01-31日
$:表示符合字串的結尾

#將身分證號碼中的8位元出生年與上述正規表示式進行匹配,如果匹配成功,則表示該生日資訊合法。

以下是完整的PHP程式碼範例:

function validate_birthday($id_card)
{

$birthday_pattern = '/^(19d{2}|20d{2})(0[1-9]|1[012])(0[1-9]|[12]d|3[01])$/';

$birthday_string = substr($id_card, 6, 8);

if (preg_match($birthday_pattern, $birthday_string)) {
    return true;
} else {
    return false;
}

}

#在使用該函數進行身份證號碼驗證時,只需要傳入身分證號碼的字串即可:

if (validate_birthday('440524199312220058')) {

echo '生日信息正确';

} else {

echo '生日信息错误';

}

透過上述方式,我們可以快速且準確地驗證身分證號碼的生日資訊是否合法,從而確保身分證號碼的有效性。

以上是PHP正規表示式驗證身分證號碼的生日訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn