Materi
Catatan penjualan harian datang sebagai satu baris per transaksi: nomor pesanan, nomor rekening tujuan, nominal, lalu tanggal kirim. Misi ini menyisir baris seperti itu dan menemukan tiap bagiannya dengan kuantor bertakaran.
const baris = "PSN004512 | Rek. 1234567890 | Rp1.250.000 | kirim 22/09";| Bagian | Aturan catatan di latihan ini | Contoh |
|---|---|---|
| Nomor pesanan | PSN lalu tepat enam digit | PSN004512 |
| Nomor rekening | Rek. spasi, lalu 10 sampai 16 digit | Rek. 1234567890 |
| Nominal | Rp, satu sampai tiga digit, titik, tiga digit | Rp1.250 |
| Tanggal kirim | Dua digit, garis miring, dua digit | 22/09 |
Batas atas kuantor hanya terasa bila ada karakter yang menutup polanya. Di misi ini penutupnya adalah awalan teks seperti PSN dan Rek., bukan jangkar; karena itu daftar kasus yang tidak boleh cocok di tiap latihan berisi nomor yang terlalu pendek, bukan yang terlalu panjang.
Kesalahan yang sering muncul: menulis satu digit lengkap lebih dulu lalu menambahkan {10,16} di belakangnya, sehingga panjang yang diminta bertambah satu tanpa disadari. Hitung ulang jumlah digit yang benar-benar diminta polamu. Titik pada Rek. dan pada nominal juga perlu di-escape, sebab titik tanpa escape menerima huruf apa pun.