Learn
← Previous Next →

Hari 18: Regular Expression di JavaScript

60 min Last updated 09 Apr 2026

Regular Expression Dasar

// Membuat RegExp
const pola1 = /hello/;          // literal
const pola2 = new RegExp("hello"); // constructor

// Flags
/teks/i   // case insensitive
/teks/g   // global (semua kecocokan)
/teks/m   // multiline
/teks/gi  // kombinasi

Method Regex

const email = "budi@example.com";
const polEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

// test() — boolean
polEmail.test(email);  // true

// match() — ambil kecocokan
"2024-01-15".match(/\d{4}-\d{2}-\d{2}/);
// ["2024-01-15"]

// matchAll() — semua kecocokan dengan groups
const teks = "Harga: Rp100.000, Diskon: Rp25.000";
const harga = [...teks.matchAll(/Rp([\d.]+)/g)];
harga.forEach(m => console.log(m[1])); // "100.000", "25.000"

// replace() & replaceAll()
"halo dunia".replace(/[aeiou]/gi, "*");  // "h*l* d*n**"

// split()
"a,b;c d".split(/[,; ]/); // ["a","b","c","d"]

Named Groups

const tgl = "2024-05-15";
const { year, month, day } = tgl.match(/(?\d{4})-(?\d{2})-(?\d{2})/).groups;
console.log(year, month, day); // 2024 05 15

💡 Notice: ?.[0] adalah optional chaining dengan bracket notation. match() return null jika tidak ada kecocokan.

Assignment

Validasi dan ekstrak data dari teks: "Telp: 0812-3456-7890, Email: budi@gmail.com". Gunakan regex untuk (1) cek apakah nomor telp valid (08xx-xxxx-xxxx), (2) ekstrak email.

Expected output:

Telp valid: Ya
Telp: 0812-3456-7890
Email: budi@gmail.com
JS script.js
Solution
Output