Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara mengesahkan julat umur nombor ID menggunakan ungkapan biasa PHP

Cara mengesahkan julat umur nombor ID menggunakan ungkapan biasa PHP

PHPz
PHPzasal
2023-06-24 13:00:471564semak imbas

Nombor ID ialah satu-satunya sijil pengenalan untuk warganegara China, yang mengandungi maklumat identiti peribadi seperti tarikh lahir. Dalam aplikasi praktikal, kadangkala perlu untuk mengesahkan julat umur nombor ID PHP adalah cara yang sangat mudah untuk melaksanakan ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan julat umur nombor ID.

1. Struktur nombor kad pengenalan

Nombor kad pengenalan terdiri daripada tujuh belas aksara dan dibahagikan kepada enam bahagian: dua digit pertama ialah kod wilayah, empat digit tengah ialah kod bandar dan daerah, dan dua digit seterusnya ialah kod tahun Dua digit seterusnya ialah kod bulan, dua digit seterusnya ialah kod tarikh, dan digit terakhir ialah kod semak. Struktur khusus adalah seperti berikut:

xxxxxxxxxxxxxxXY

Antaranya, 17 digit pertama adalah bahagian utama nombor ID, 11643-1999 "Nombor Kad Pengenalan Warganegara".

2. Idea asas

Untuk pengesahan umur nombor ID, kita boleh dapatkan tarikh lahir dari nombor ID, dan kemudian bandingkan dengan tarikh semasa untuk mengira umur pemegang ID. Langkah pengesahan khusus adalah seperti berikut:

1 Dapatkan tarikh lahir dalam nombor kad pengenalan melalui ungkapan biasa
2.
4. Bandingkan cap masa semasa dan cap masa kelahiran untuk mendapatkan umur pemegang kad pengenalan
5.

3. Ekspresi biasa

Gunakan fungsi preg_match PHP untuk mendapatkan tarikh lahir dengan mudah dalam nombor ID. Ungkapan biasa khusus adalah seperti berikut:

/(d{6})(d{4})(d{2})(d{2})d{2}(d)(d|x)/i

di mana , kurungan ungkapan biasa digunakan untuk mewakili subrentetan yang dipadankan, d dalam kurungan mewakili nombor, d{6} mewakili padanan enam digit, d{4} mewakili padanan empat digit dan seterusnya.

4. Pelaksanaan kod PHP

Menggunakan ungkapan biasa yang disediakan di atas, tarikh lahir boleh diperolehi melalui fungsi preg_match. Kod pelaksanaan khusus adalah seperti berikut:

function getAgeByIdCard($idCard, $minAge, $maxAge)
{
    // 通过正则表达式获取身份证号码的出生年月日
    if (preg_match('/(d{6})(d{4})(d{2})(d{2})d{2}(d)(d|x)/i', $idCard, $matches))
    {
        list(,$birthYear,$birthMonth,$birthDay) = $matches;

        // 将出生年月日转化为时间戳
        $birthTimestamp = strtotime("{$birthYear}-{$birthMonth}-{$birthDay}");

        // 计算当前时间戳
        $currentTimestamp = time();

        // 计算身份证持有者的年龄
        $age = floor(($currentTimestamp - $birthTimestamp) / 31536000);

        // 判断年龄是否在指定范围内
        if ($age >= $minAge && $age <= $maxAge) {
            return true;
        }
    }
    
    return false;
}

// 身份证号码
$idCard = "320123199001011234";
// 最小年龄
$minAge = 18;
// 最大年龄
$maxAge = 60;

// 验证身份证号码是否在指定年龄范围内
if (getAgeByIdCard($idCard, $minAge, $maxAge)) {
    echo "身份证号码通过验证";
} else {
    echo "身份证号码不在指定年龄范围内";
}

5. Ringkasan

Artikel ini memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan julat umur nombor ID. Melalui ungkapan biasa yang disediakan, anda boleh mendapatkan tarikh lahir dalam nombor ID dengan mudah. Kemudian gunakan fungsi cap waktu PHP untuk menukar tarikh lahir kepada cap masa, dengan itu mengira umur pemegang kad ID. Melalui pelaksanaan artikel ini, kaedah pengesahan yang mudah boleh disediakan untuk aplikasi praktikal.

Atas ialah kandungan terperinci Cara mengesahkan julat umur nombor ID menggunakan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn