Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP untuk mengesahkan sama ada kata laluan input mengandungi nombor, huruf dan simbol

Ungkapan biasa PHP untuk mengesahkan sama ada kata laluan input mengandungi nombor, huruf dan simbol

WBOY
WBOYasal
2023-06-24 11:21:062680semak imbas

Dalam bidang pengaturcaraan komputer, ungkapan biasa ialah alat berkuasa yang boleh memudahkan pemadanan dan pemprosesan data dengan sangat baik. Apabila membangunkan laman web atau aplikasi yang memerlukan pendaftaran pengguna, untuk memastikan keselamatan kata laluan, selalunya perlu untuk mengesahkan kata laluan yang dimasukkan Cara terbaik ialah menggunakan ungkapan biasa.

Sebagai bahasa pengaturcaraan sebelah pelayan yang popular, PHP mempunyai perpustakaan fungsi ungkapan biasa terbina dalam yang boleh mengesahkan kata laluan input dengan mudah. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada kata laluan yang dimasukkan mengandungi nombor, huruf dan simbol.

Pertama, kita perlu menentukan peraturan kata laluan, yang menetapkan bahawa kata laluan mesti mengandungi sekurang-kurangnya satu nombor, sekurang-kurangnya satu huruf dan sekurang-kurangnya satu simbol. Berikut ialah takrifan simbol, termasuk pelbagai simbol yang biasa digunakan:

! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [  ] ^ _ ` { | } ~

Seterusnya, kami akan menggunakan fungsi ungkapan biasa PHP preg_match() untuk mengesahkan peraturan kata laluan. Fungsi preg_match() digunakan untuk melakukan padanan ungkapan biasa dan mengembalikan hasil padanan. Sebagai contoh, kod berikut boleh digunakan untuk menyemak sama ada rentetan mengandungi nombor:

if (preg_match('/d/', $password)) {
    // 包含数字
}

dengan d ialah aksara khas yang mewakili nombor dalam ungkapan biasa. Begitu juga, kod berikut boleh digunakan untuk menyemak sama ada rentetan mengandungi huruf:

if (preg_match('/[a-zA-Z]/', $password)) {
    // 包含字母
}

di mana, [a-zA-Z] mewakili sebarang huruf, termasuk huruf besar dan huruf kecil. Kita boleh menggunakan [a-z] untuk memasukkan hanya huruf kecil atau [A-Z] untuk memasukkan huruf besar sahaja.

Akhir sekali, kita perlu menyemak sama ada rentetan itu mengandungi simbol. Terdapat banyak simbol, dan beberapa simbol dalam ungkapan biasa perlu dilepaskan untuk dipadankan. Kod berikut boleh digunakan untuk menyemak sama ada rentetan mengandungi simbol:

if (preg_match('/[^a-zA-Z0-9]/', $password)) {
    // 包含符号
}

di mana, [^a-zA-Z0-9] bermaksud sebarang aksara kecuali huruf dan nombor, dan [^...] bermaksud mengecualikan aksara tertentu.

Dengan menggabungkan kod di atas, kita boleh menulis fungsi PHP dengan mudah untuk mengesahkan sama ada kata laluan yang dimasukkan mematuhi peraturan:

function validate_password($password) {
    // 密码包含数字
    if (!preg_match('/d/', $password)) {
        return false;
    }
    // 密码包含字母
    if (!preg_match('/[a-zA-Z]/', $password)) {
        return false;
    }
    // 密码包含符号
    if (!preg_match('/[^a-zA-Z0-9]/', $password)) {
        return false;
    }
    // 密码长度至少为8位
    if (strlen($password) < 8) {
        return false;
    }
    return true;
}

Fungsi ini juga akan menyemak sama ada kata laluan mengandungi nombor dan huruf dan simbol, dan kata laluan mestilah sekurang-kurangnya 8 aksara panjang. Jika peraturan tidak dipenuhi, fungsi akan kembali false, jika tidak ia akan kembali true.

Dalam aplikasi praktikal, kami boleh menggabungkan fungsi di atas dengan fungsi pendaftaran pengguna, untuk memastikan keselamatan kata laluan yang dimasukkan oleh pengguna dan mengurangkan risiko diserang atau diakses secara haram.

Atas ialah kandungan terperinci Ungkapan biasa PHP untuk mengesahkan sama ada kata laluan input mengandungi nombor, huruf dan simbol. 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