Dalam aplikasi web, mengesahkan nama pengguna adalah bahagian yang sangat penting. Apabila pengguna mendaftar, anda perlu memastikan bahawa nama pengguna memenuhi peraturan khusus untuk menghalang pengguna daripada memasukkan nama pengguna yang tidak sah atau berniat jahat. PHP menyediakan fungsi ekspresi biasa yang berkuasa dan fleksibel (pendek kata Regex) yang boleh digunakan untuk menyemak dan mengesahkan teks input. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format nama pengguna.
Sahkan peraturan nama pengguna
Sebelum menulis ungkapan biasa pengesahan nama pengguna, anda perlu menentukan peraturan nama pengguna terlebih dahulu. Biasanya, nama pengguna hendaklah hanya mengandungi huruf, nombor dan garis bawah. Panjangnya hendaklah antara 4 dan 16 aksara, dan tidak boleh bermula dengan nombor atau garis bawah, atau berakhir dengan garis bawah. Di samping itu, untuk menghalang pengguna daripada memasukkan maklumat sensitif atau kod serangan, nama pengguna harus menapis beberapa aksara khas, seperti kurungan sudut, tanda petikan, garis miring, dsb.
Berikut ialah contoh peraturan nama pengguna:
- Hanya mengandungi huruf, nombor dan garis bawah
- Panjang antara 4~16 aksara
- Tidak boleh bermula dengan nombor dan garis bawah
- Tidak boleh diakhiri dengan aksara bawah
Tidak boleh diakhiri dengan garis bawah-
Menulis ungkapan biasa
Dengan peraturan, kita boleh menulis ungkapan biasa. Dalam PHP, gunakan fungsi preg_match() untuk menyemak sama ada input pengguna mematuhi peraturan ungkapan biasa. Berikut ialah ungkapan biasa asas untuk mengesahkan nama pengguna:
$pattern = '/^[a-zA-Z0-9_]{4,16}$/';
Ungkapan biasa ini menggunakan ^(Match Locators untuk kedudukan mula daripada rentetan input) dan $ (padan dengan kedudukan akhir rentetan input). Antaranya, kurungan segi empat sama ([]) mewakili satu set aksara, menunjukkan bahawa nama pengguna hanya boleh berupa huruf, nombor dan garis bawah. Tanda kurung ({}) menunjukkan julat, menunjukkan bahawa panjang nama pengguna adalah antara 4 dan 16 aksara.
Seterusnya, kami perlu menambah peraturan tambahan untuk mengesahkan bahawa nama pengguna memenuhi keperluan lain. Khususnya, kita perlu mengecualikan nama pengguna yang bermula dengan nombor atau garis bawah dan berakhir dengan garis bawah:
$pattern = '/^[a-zA-Z][a-zA-Z0-9_]{3,15 }$ /';
Ungkapan biasa ini menambah peraturan baharu, iaitu nama pengguna mesti bermula dengan huruf dan panjangnya hendaklah antara 4~16 aksara.
Akhir sekali, kita perlu menapis beberapa aksara khas, seperti kurungan sudut, tanda petikan, garis miring, dll. Ini boleh dicapai dengan menggunakan aksara melarikan diri () dalam set aksara:
$pattern = '/^[^s<>/'"]{4,16}$/';
regex ini menggunakan ^ ( negatif) set aksara bermakna aksara khas dikecualikan. Harap maklum bahawa tidak boleh ada ruang dalam set aksara, jadi s (ruang) digunakan untuk mengecualikan ruang
Gunakan fungsi preg_match() untuk mengesahkan nama pengguna
Sekarang, terdapat ungkapan biasa, kita boleh menggunakan fungsi preg_match() untuk menyemak sama ada nama pengguna yang dimasukkan memenuhi keperluan Berikut ialah kod contoh:
$nama pengguna = "my_name123";
$pattern = '/^[^. s<>/' "]{4,16}$/';
if (preg_match($pattern, $username)) {
echo "用户名合法";
Salin selepas log masuk
} else {
echo "用户名不合法";
Salin selepas log masuk
}
Dalam contoh, $username ialah nama pengguna yang dimasukkan, $pattern Merupakan ungkapan biasa untuk mengesahkan nama pengguna. Jika nama pengguna sepadan dengan ungkapan biasa, "Nama pengguna adalah sah" akan dikeluarkan, jika tidak "Nama pengguna adalah haram" akan dikeluarkan.
Kesimpulan
Menggunakan ungkapan biasa PHP untuk mengesahkan format nama pengguna ialah tugas penting yang boleh membantu memastikan keselamatan data pengguna berdaftar dan keselamatan aplikasi. Apabila menulis ungkapan biasa, semua peraturan untuk nama pengguna perlu dipertimbangkan dengan teliti dan diuji dan disahkan secara terperinci. Gunakan fungsi preg_match() untuk menyemak dengan mudah sama ada nama pengguna yang dimasukkan memenuhi keperluan.
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan format nama pengguna dengan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!