Saya memiliki string masukan dan saya ingin memverifikasi bahwa isinya:
- Hanya surat atau
- Hanya huruf dan angka atau
- Hanya huruf, angka, atau garis bawah
Untuk memperjelas, saya memiliki 3 kasus berbeda dalam kode, masing-masing meminta validasi berbeda. Apa cara paling sederhana untuk mencapai ini di C #?
sumber
Regex
untuk semua huruf, dan 3x lebih cepat dari yang dikompilasiRegex
untuk semua huruf denganIgnoreCase
opsi (!).Hanya surat-surat:
Huruf dan angka:
Surat, angka, dan garis bawah:
Catatan, pola-pola ini juga cocok dengan karakter internasional (bukan menggunakan
a-z
konstruk).sumber
Bagi Anda yang lebih suka tidak pergi dengan Regex dan berada di .NET 2.0 Framework (AKA no LINQ):
Hanya Surat:
Hanya Angka:
Hanya Angka Atau Surat:
Hanya Angka Atau Huruf Atau Yang Menggarisbawahi:
sumber
Menurut saya adalah kasus yang baik untuk menggunakan Ekspresi Reguler:
sumber
Anda dapat mengulang pada chars of string dan memeriksa menggunakan Char Method IsLetter tetapi Anda juga dapat melakukan trik menggunakan metode String IndexOfAny untuk mencari karakter lain yang tidak seharusnya berada dalam string.
sumber
Iterate melalui karakter string dan gunakan fungsi 'Char' yang disebut 'IsLetter' dan 'IsDigit'.
Jika Anda membutuhkan sesuatu yang lebih spesifik - gunakan kelas Regex.
sumber
Jika Anda seorang pemula maka Anda dapat mengambil referensi dari kode saya .. apa yang saya lakukan adalah memberi cek sehingga saya hanya bisa mendapatkan huruf dan spasi putih! Anda bisa Mengulangi for for setelah pernyataan if kedua untuk memvalidasi string lagi
sumber
Baru-baru ini, saya membuat peningkatan kinerja untuk fungsi yang memeriksa huruf dalam sebuah string dengan bantuan halaman ini.
Saya menemukan bahwa Solusi dengan regex 30 kali lebih lambat daripada yang dengan cek Char.IsLetterOrDigit.
Kami tidak yakin bahwa Huruf atau Angka itu termasuk dan kami hanya membutuhkan karakter Latin sehingga menerapkan fungsi kami berdasarkan versi yang terdekompilasi dari fungsi Char.IsLetterOrDigit.
Inilah solusi kami:
Dan penggunaannya seperti ini:
sumber
Silakan temukan metode untuk memvalidasi jika char adalah huruf, angka atau spasi, jika tidak lampirkan garis bawah (Bebas untuk dimodifikasi sesuai kebutuhan Anda)
sumber