Regular Expression (regex) adalah sebuah notasi yang digunakan untuk memrepresentasikan pola-pola tertentu dalam string. Regex sering digunakan untuk mencari, mengganti, atau memvalidasi string yang memenuhi pola tertentu. Regex banyak digunakan dalam berbagai bahasa pemrograman, aplikasi web, dan tools lainnya. Contoh penggunaan regex yang umum adalah validasi input form, pencarian teks dalam file, dan pemfilteran string sesuai dengan pola tertentu.
Ada beberapa regex yang sering digunakan oleh programmer "malas" (dalam hal ini, "malas" mungkin berarti sibuk atau tidak ingin terlalu banyak memikirkan logika pemrograman yang terkait dengan parsing string). Berikut adalah beberapa contoh yang mungkin berguna:
-
Digit:
\d -
Huruf kecil:
[a-z] -
Huruf besar:
[A-Z] -
Angka atau huruf:
[a-zA-Z0-9] -
Spasi:
\s -
Semua karakter kecuali spasi:
\S -
Karakter apa saja yang terdapat dalam kurung:
[...]
Digit
Untuk mencari pola digit (angka) dalam string menggunakan regex di JavaScript, kita bisa menggunakan karakter khusus \d.
Menggunakan RegExp object:
const regex = new RegExp('\\d');
console.log(regex.test('123')); // true
console.log(regex.test('abc')); // falseMenggunakan String.prototype.match():
console.log('123'.match(/\d/)); // ['1']
console.log('abc'.match(/\d/)); // nullMenggunakan String.prototype.search():
console.log('123'.search(/\d/)); // 0
console.log('abc'.search(/\d/)); // -1Menggunakan String.prototype.replace():
console.log('123'.replace(/\d/g, 'x')); // xxx
console.log('abc'.replace(/\d/g, 'x')); // abcMenggunakan RegExp.prototype.exec():
const regex = /\d/;
console.log(regex.exec('123')); // ['1']
console.log(regex.exec('abc')); // nullCatatan: Karakter \d merupakan shorthand untuk mencari digit dalam regex. g merupakan flag yang menandakan bahwa regex harus mencari semua pola yang sesuai, bukan hanya pola pertama yang ditemukan.
Huruf kecil
Berikut ini adalah contoh regex untuk mencari huruf kecil dalam string menggunakan JavaScript:
Menggunakan RegExp object:
const regex = new RegExp('[a-z]');
console.log(regex.test('abc')); // true
console.log(regex.test('ABC')); // falseMenggunakan String.prototype.match():
console.log('abc'.match(/[a-z]/)); // ['a']
console.log('ABC'.match(/[a-z]/)); // nullMenggunakan String.prototype.search():
console.log('abc'.search(/[a-z]/)); // 0
console.log('ABC'.search(/[a-z]/)); // -1Menggunakan String.prototype.replace():
console.log('abc'.replace(/[a-z]/g, 'x')); // xxx
console.log('ABC'.replace(/[a-z]/g, 'x')); // ABCMenggunakan RegExp.prototype.exec():
const regex = /[a-z]/;
console.log(regex.exec('abc')); // ['a']
console.log(regex.exec('ABC')); // nullHuruf besar (kapital)
Berikut ini adalah contoh regex untuk mencari huruf besar dalam string menggunakan JavaScript:
- Menggunakan RegExp object:
const regex = new RegExp('[A-Z]');
console.log(regex.test('ABC')); // true
console.log(regex.test('abc')); // falseMenggunakan String.prototype.match():
console.log('ABC'.match(/[A-Z]/)); // ['A']
console.log('abc'.match(/[A-Z]/)); // nullMenggunakan String.prototype.search():
console.log('ABC'.search(/[A-Z]/)); // 0
console.log('abc'.search(/[A-Z]/)); // -1Menggunakan String.prototype.replace():
console.log('ABC'.replace(/[A-Z]/g, 'x')); // xxx
console.log('abc'.replace(/[A-Z]/g, 'x')); // abcMenggunakan RegExp.prototype.exec():
const regex = /[A-Z]/;
console.log(regex.exec('ABC')); // ['A']
console.log(regex.exec('abc')); // nullAngka atau huruf
Berikut ini adalah contoh regex untuk mencari angka atau huruf dalam string menggunakan JavaScript:
Menggunakan RegExp object:
const regex = new RegExp('[a-zA-Z0-9]');
console.log(regex.test('123')); // true
console.log(regex.test('abc')); // true
console.log(regex.test('ABC')); // true
console.log(regex.test('!@#$')); // falseMenggunakan String.prototype.match():
console.log('123'.match(/[a-zA-Z0-9]/)); // ['1']
console.log('abc'.match(/[a-zA-Z0-9]/)); // ['a']
console.log('ABC'.match(/[a-zA-Z0-9]/)); // ['A']
console.log('!@#$'.match(/[a-zA-Z0-9]/)); // nullMenggunakan String.prototype.search():
console.log('123'.search(/[a-zA-Z0-9]/)); // 0
console.log('abc'.search(/[a-zA-Z0-9]/)); // 0
console.log('ABC'.search(/[a-zA-Z0-9]/)); // 0
console.log('!@#$'.search(/[a-zA-Z0-9]/)); // -1Menggunakan String.prototype.replace():
console.log('123'.replace(/[a-zA-Z0-9]/g, 'x')); // xxx
console.log('abc'.replace(/[a-zA-Z0-9]/g, 'x')); // xxx
console.log('ABC'.replace(/[a-zA-Z0-9]/g, 'x')); // xxx
console.log('!@#$'.replace(/[a-zA-Z0-9]/g, 'x')); // !@#$Menggunakan RegExp.prototype.exec():
const regex = /[a-zA-Z0-9]/;
console.log(regex.exec('123')); // ['1']
console.log(regex.exec('abc')); // ['a']
console.log(regex.exec('ABC')); // ['A']
console.log(regex.exec('!@#$')); // nullSpasi
Berikut ini adalah contoh regex untuk mencari spasi dalam string menggunakan JavaScript:
Menggunakan RegExp object:
const regex = new RegExp('\\s');
console.log(regex.test(' ')); // true
console.log(regex.test('abc')); // falseMenggunakan String.prototype.match():
console.log(' '.match(/\s/)); // [' ']
console.log('abc'.match(/\s/)); // nullMenggunakan String.prototype.search():
console.log(' '.search(/\s/)); // 0
console.log('abc'.search(/\s/)); // -1Menggunakan String.prototype.replace():
console.log(' '.replace(/\s/g, 'x')); // xxx
console.log('abc'.replace(/\s/g, 'x')); // abcMenggunakan RegExp.prototype.exec():
const regex = /\s/;
console.log(regex.exec(' ')); // [' ']
console.log(regex.exec('abc')); // nullSemua karakter kecuali spasi
Berikut ini adalah contoh regex untuk mencari semua karakter kecuali spasi dalam string menggunakan JavaScript:
Menggunakan RegExp object:
const regex = new RegExp('[^\\s]');
console.log(regex.test('abc')); // true
console.log(regex.test(' ')); // falseMenggunakan String.prototype.match():
console.log('abc'.match(/[^\s]/)); // ['a']
console.log(' '.match(/[^\s]/)); // nullMenggunakan String.prototype.search():
console.log('abc'.search(/[^\s]/)); // 0
console.log(' '.search(/[^\s]/)); // -1Menggunakan String.prototype.replace():
console.log('abc'.replace(/[^\s]/g, 'x')); // xxx
console.log(' '.replace(/[^\s]/g, 'x')); // Menggunakan RegExp.prototype.exec():
const regex = /[^\s]/;
console.log(regex.exec('abc')); // ['a']
console.log(regex.exec(' ')); // nullKarakter apa saja yang didalam kurung
Berikut ini adalah contoh regex untuk mencari semua karakter yang terdapat dalam kurung dalam string menggunakan JavaScript:
Menggunakan RegExp object:
const regex = new RegExp('[(abc)]');
console.log(regex.test('a')); // true
console.log(regex.test('b')); // true
console.log(regex.test('c')); // true
console.log(regex.test('d')); // falseMenggunakan String.prototype.match():
console.log('a'.match(/[(abc)]/)); // ['a']
console.log('b'.match(/[(abc)]/)); // ['b']
console.log('c'.match(/[(abc)]/)); // ['c']
console.log('d'.match(/[(abc)]/)); // nullMenggunakan String.prototype.search():
console.log('a'.search(/[(abc)]/)); // 0
console.log('b'.search(/[(abc)]/)); // 0
console.log('c'.search(/[(abc)]/)); // 0
console.log('d'.search(/[(abc)]/)); // -1Menggunakan String.prototype.replace():
console.log('a'.replace(/[(abc)]/g, 'x')); // x
console.log('b'.replace(/[(abc)]/g, 'x')); // x
console.log('c'.replace(/[(abc)]/g, 'x')); // x
console.log('d'.replace(/[(abc)]/g, 'x')); // dMenggunakan RegExp.prototype.exec():
const regex = /[(abc)]/;
console.log(regex.exec('a')); // ['a']
console.log(regex.exec('b')); // ['b']
console.log(regex.exec('c')); // ['c']
console.log(regex.exec('d')); // nullContoh regex untuk validasi
const regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
console.log(regex.test('user@example.com')); // true
console.log(regex.test('user@example')); // falseURL
const regex = /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,3}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/;
console.log(regex.test('https://www.example.com')); // true
console.log(regex.test('http://example.com')); // true
console.log(regex.test('ftp://www.example.com')); // true
console.log(regex.test('www.example.com')); // false
console.log(regex.test('example.com')); // falseKTP (NIK Indonesia) 🇮🇩
const regex = /^\d{16}$/;
console.log(regex.test('1234567890123456')); // true
console.log(regex.test('123456789012345')); // false (panjang kurang)
console.log(regex.test('12345678901234567')); // false (panjang lebih)
console.log(regex.test('123456789012345a')); // false (ada huruf)Nomor Handphone Indonesia +62 atau 62 atau 08
const regex = /^(62|\+62|08)\d{6,12}$/;
console.log(regex.test('62123456')); // true
console.log(regex.test('+62123456789012')); // true
console.log(regex.test('0812345')); // false (panjang kurang)
console.log(regex.test('081234567890123')); // false (panjang lebih)
console.log(regex.test('012345a')); // false (tidak diawali dengan 62, +62, atau 08)NPWP atau Nomor Pokok Wajib Pajak 🇮🇩
const regex = /^[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\.?[0-9]{1}-?[0-9]{3}\.?[0-9]{3}$/;
console.log(regex.test('12.123.123.1-123.123')); // true
console.log(regex.test('12123123123123123')); // true
console.log(regex.test('12.123.123.123123123')); // false (panjang salah)
console.log(regex.test('12.123.123.1-123.1234')); // false (panjang salah)
console.log(regex.test('12.123.123.a-123.123')); // false (ada huruf)Warna dengan hexacolor
const regex = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
console.log(regex.test('#000000')); // true
console.log(regex.test('#FFF')); // true
console.log(regex.test('#123456')); // true
console.log(regex.test('#ABC')); // true
console.log(regex.test('000000')); // true
console.log(regex.test('#12345')); // false (panjang salah)
console.log(regex.test('#1234567')); // false (panjang salah)
console.log(regex.test('#12345g')); // false (ada huruf yang tidak sesuai)Itu saja mungkin yang sering dipakai untuk penggunaan regex dalam kehidupan sehari-hari si programmer yang anti anti ribet. Jika ada yang lain mohon tinggalkan dikomentar. Terimakasih, semoga membantu ❤️