Kemungkinan Duplikat:
Apa kode pos terakhir dan ekspresi reguler?
Saya membutuhkan Regex yang dapat memenuhi ketiga persyaratan saya untuk kode pos. Misalnya-
- 12345
- 12345-6789
- 12345 1234
Setiap petunjuk dan saran akan sangat dihargai. Terima kasih!
\d{5}([ \-]\d{4})?
.Jawaban:
^
= Awal dari string.\d{5}
= Cocokkan 5 digit (untuk kondisi 1, 2, 3)(?:…)
= Pengelompokan[-\s]
= Cocokkan spasi (untuk kondisi 3) atau tanda hubung (untuk kondisi 2)\d{4}
= Cocokkan 4 digit (untuk kondisi 2, 3)…?
= Pola sebelumnya adalah opsional (untuk kondisi 1)$
= Akhir dari string.sumber
\s
akan cocok dengan semua spasi, termasuk tab dan baris baru.00544
adalah kode pos yang valid;544
tidak./(^\d{5}(?:[\s]?[-\s][\s]?\d{4})?$)/
Untuk tiga kondisi yang terdaftar saja, ekspresi ini mungkin juga berfungsi:
Silakan lihat demo ini untuk penjelasan tambahan.
Jika kami memiliki spasi tambahan yang tidak terduga antara 5 dan 4 digit atau kode pos 9 digit yang bersambung, seperti:
ekspresi ini misalnya akan menjadi opsi sekunder dengan lebih sedikit batasan:
Silakan lihat demo ini untuk penjelasan tambahan.
Sirkuit RegEx
jex.im memvisualisasikan ekspresi reguler:
Uji
sumber
Saya tahu ini mungkin jelas bagi kebanyakan orang yang sering menggunakan RegEx, tetapi jika ada pembaca yang baru mengenal RegEx, saya pikir saya harus menunjukkan pengamatan yang saya buat yang berguna untuk salah satu proyek saya.
Dalam jawaban sebelumnya dari @kennytm:
Jika Anda ingin mengizinkan kode pos standar 5 digit dan +4, ini adalah contoh yang bagus.
Untuk hanya mencocokkan kode pos dalam format 'Zip + 4' AS seperti yang perlu saya lakukan (hanya kondisi 2 dan 3), cukup hapus yang terakhir
?
sehingga akan selalu cocok dengan kelompok 5 karakter terakhir.Alat yang berguna yang saya rekomendasikan untuk bermain-main dengan RegEx ditautkan di bawah ini:
https://regexr.com/
Saya sering menggunakan alat ini ketika saya menemukan RegEx yang melakukan sesuatu yang mirip dengan apa yang saya butuhkan, tetapi dapat disesuaikan sedikit lebih baik. Ini juga memiliki menu referensi RegEx bagus dan antarmuka informatif yang membuat Anda tetap sadar tentang bagaimana perubahan Anda memengaruhi kecocokan untuk teks contoh yang Anda masukkan.
Jika saya mendapatkan sesuatu yang salah atau melewatkan bagian informasi penting, mohon koreksi saya.
sumber