Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Kata Laluan dengan Regexp dalam Go?

Bagaimana untuk Mengesahkan Kata Laluan dengan Regexp dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 04:46:01581semak imbas

How to Validate Passwords with Regexp in Go?

Pengesahan Kata Laluan dengan Regexp in Go

Corak ekspresi Regex ialah alat yang berkuasa untuk mengesahkan input pengguna, termasuk kata laluan. Dalam Go, pakej regex menyediakan pendekatan yang berbeza berbanding bahasa lain. Walau bagaimanapun, membina corak regex untuk pengesahan kata laluan adalah mudah.

Untuk mengesahkan kata laluan yang memenuhi kriteria berikut:

  • sekurang-kurangnya 7 huruf
  • sekurang-kurangnya 1 nombor
  • sekurang-kurangnya 1 huruf besar
  • sekurang-kurangnya 1 aksara khas

kami boleh mencipta fungsi tersuai untuk mengesahkan keperluan ini:

<code class="go">func verifyPassword(s string) (sevenOrMore, number, upper, special bool) {
    letters := 0
    for _, c := range s {
        switch {
        case unicode.IsNumber(c):
            number = true
        case unicode.IsUpper(c):
            upper = true
            letters++
        case unicode.IsPunct(c) || unicode.IsSymbol(c):
            special = true
        case unicode.IsLetter(c) || c == ' ':
            letters++
        default:
            //return false, false, false, false
        }
    }
    sevenOrMore = letters >= 7
    return
}</code>

Fungsi ini berulang melalui rentetan kata laluan dan menyemak setiap aksara untuk jenisnya (nombor, huruf besar, dll.). Ia juga menjejaki jumlah bilangan huruf. Dengan menggabungkan semakan ini, kami boleh menentukan sama ada kata laluan memenuhi semua kriteria yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Kata Laluan dengan Regexp dalam Go?. 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