Latihan 1 dari materi Input Validation & Schema di Security — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi fungsi validateInput(data) yang memvalidasi data daftar akun. Kerangkanya sudah ada di kode awal: array errors, baris return { valid: errors.length === 0, errors }, dan dua console.log. Biarkan semuanya.
Di bawah // Validasi name: tambahkan error kalau name bukan teks, kurang dari 2 karakter, atau lebih dari 50 karakter.
Di bawah // Validasi email: tambahkan error kalau email bukan teks, atau gak mengandung @ dan ..
Di bawah // Validasi age: tambahkan error kalau age bukan angka bulat, kurang dari 13, atau lebih dari 120. Umur yang gak dikirim sama sekali juga harus jadi error.
Isi pesan error-nya bebas. Yang dicek adalah hasil fungsinya:
valid harus false untuk { name: '', email: 'invalid', age: 10 }, untuk { name: 'A', email: '[email protected]', age: 25 } (nama 1 huruf), untuk { name: 'Budi', email: '[email protected]', age: 200 }, untuk { name: 'Budi', email: '[email protected]' } (tanpa umur), dan untuk nama 56 karakter 'BudiBudiBudiBudiBudiBudiBudiBudiBudiBudiBudiBudiBudiBudi' dengan email dan umur yang benar.
Hint
Tiap field punya aturannya sendiri. Untuk tiap aturan yang dilanggar, masukkan satu pesan ke array errors. Kalau array-nya tetap kosong, datanya valid.
Pakai tiga if. Nama: cek typeof, panjang minimal 2 dan maksimal 50. Email: cek typeof, includes('@') dan includes('.'). Umur: cek Number.isInteger, minimal 13, maksimal 120. Number.isInteger(undefined) bernilai false, jadi umur yang gak ada ikut tertolak.
if (typeof data.name !== 'string' || data.name.length < 2 || data.name.length > 50) errors.push('nama tidak valid'); if (typeof data.email !== 'string' || !data.email.includes('@') || !data.email.includes('.')) errors.push('email tidak valid'); if (!Number.isInteger(data.age) || data.age < 13 || data.age > 120) errors.push('umur tidak valid');
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...