Regex untuk si paling anti ribet

Javascript

ยท

5 min read

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:

  1. Digit: \d

  2. Huruf kecil: [a-z]

  3. Huruf besar: [A-Z]

  4. Angka atau huruf: [a-zA-Z0-9]

  5. Spasi: \s

  6. Semua karakter kecuali spasi: \S

  7. 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'));  // false

Menggunakan String.prototype.match():

console.log('123'.match(/\d/));  // ['1']
console.log('abc'.match(/\d/));  // null

Menggunakan String.prototype.search():

console.log('123'.search(/\d/));  // 0
console.log('abc'.search(/\d/));  // -1

Menggunakan String.prototype.replace():

console.log('123'.replace(/\d/g, 'x'));  // xxx
console.log('abc'.replace(/\d/g, 'x'));  // abc

Menggunakan RegExp.prototype.exec():

const regex = /\d/;
console.log(regex.exec('123'));  // ['1']
console.log(regex.exec('abc'));  // null

Catatan: 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'));  // false

Menggunakan String.prototype.match():

console.log('abc'.match(/[a-z]/));  // ['a']
console.log('ABC'.match(/[a-z]/));  // null

Menggunakan String.prototype.search():

console.log('abc'.search(/[a-z]/));  // 0
console.log('ABC'.search(/[a-z]/));  // -1

Menggunakan String.prototype.replace():

console.log('abc'.replace(/[a-z]/g, 'x'));  // xxx
console.log('ABC'.replace(/[a-z]/g, 'x'));  // ABC

Menggunakan RegExp.prototype.exec():

const regex = /[a-z]/;
console.log(regex.exec('abc'));  // ['a']
console.log(regex.exec('ABC'));  // null

Huruf besar (kapital)

Berikut ini adalah contoh regex untuk mencari huruf besar dalam string menggunakan JavaScript:

  1. Menggunakan RegExp object:
const regex = new RegExp('[A-Z]');
console.log(regex.test('ABC'));  // true
console.log(regex.test('abc'));  // false

Menggunakan String.prototype.match():

console.log('ABC'.match(/[A-Z]/));  // ['A']
console.log('abc'.match(/[A-Z]/));  // null

Menggunakan String.prototype.search():

console.log('ABC'.search(/[A-Z]/));  // 0
console.log('abc'.search(/[A-Z]/));  // -1

Menggunakan String.prototype.replace():

console.log('ABC'.replace(/[A-Z]/g, 'x'));  // xxx
console.log('abc'.replace(/[A-Z]/g, 'x'));  // abc

Menggunakan RegExp.prototype.exec():

const regex = /[A-Z]/;
console.log(regex.exec('ABC'));  // ['A']
console.log(regex.exec('abc'));  // null

Angka 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('!@#$'));  // false

Menggunakan 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]/));  // null

Menggunakan 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]/));  // -1

Menggunakan 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('!@#$'));  // null

Spasi

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'));  // false

Menggunakan String.prototype.match():

console.log('   '.match(/\s/));  // [' ']
console.log('abc'.match(/\s/));  // null

Menggunakan String.prototype.search():

console.log('   '.search(/\s/));  // 0
console.log('abc'.search(/\s/));  // -1

Menggunakan String.prototype.replace():

console.log('   '.replace(/\s/g, 'x'));  // xxx
console.log('abc'.replace(/\s/g, 'x'));  // abc

Menggunakan RegExp.prototype.exec():

const regex = /\s/;
console.log(regex.exec('   '));  // [' ']
console.log(regex.exec('abc'));  // null

Semua 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('   '));  // false

Menggunakan String.prototype.match():

console.log('abc'.match(/[^\s]/));  // ['a']
console.log('   '.match(/[^\s]/));  // null

Menggunakan String.prototype.search():

console.log('abc'.search(/[^\s]/));  // 0
console.log('   '.search(/[^\s]/));  // -1

Menggunakan 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('   '));  // null

Karakter 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'));  // false

Menggunakan 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)]/));  // null

Menggunakan 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)]/));  // -1

Menggunakan 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'));  // d

Menggunakan 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'));  // null

Contoh regex untuk validasi

Email

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'));  // false

URL

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')); // false

KTP (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 โค๏ธ

ย