Latihan 1: ReDoS & Catastrophic Backtracking — Regex

Latihan 1 dari materi ReDoS & Catastrophic Backtracking di Regex — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Pola /^(\w+)+\.(\w+)+$/ memeriksa nama file berbentuk nama.ext, tapi rawan ReDoS: (\w+)+ adalah quantifier di dalam quantifier, dan dia muncul dua kali.

  1. Di function safePattern(), ganti return /.../; dengan versi aman pola itu. Dia tetap menerima nama.ext: huruf, angka, atau garis bawah, lalu satu titik, lalu huruf, angka, atau garis bawah. Nama yang ada spasinya ditolak.
  2. safePattern() me-return regex-nya, bukan hasil test().
  3. Dua console.log di starter memanggil safePattern().test(...); biarkan. Output yang diharapkan, baris per baris:
true
false

Baris pertama dari 'hello.txt', baris kedua dari 'hello world.txt'. Yang juga dicek: safePattern().test("a_b.c") memberi true dan safePattern().test("no dot here") memberi false.

Hint