Fungsi regex (pattern) penting

pattern regex regular expression function

Proses validasi data yang akan masuk ke database (misalnya) memang harus disaring dan disesuaikan agar semua sistem tetap berjalan lancar. Karenanya dibutuhkan kode tersendiri untuk mengatur semua tidak menjadi celah hacker atau peretas situs, meski memang semua ciptaan manusia pasti ada banyak celahnya untuk diretas.

Berikut adalah pattern (regular expression) yang sering ku gunakan dalam aplikasi yang sedang dikerjakan atau maintenance:


No Handphone

Dikarenakan masih banyak project yang menggunakan nomer hape (hp), maka regex ini sangat membantu untuk proses validasi inputnya, ^(0)[0-9]{9,11}$ dengan fungsi tersebut maka akan memvalidasi hanya yang berawalan angka 0 (nol) hingga 10 atau 12 digit, selain itu maka dianggap salah. Untuk penggunaan pada PHP seperti berikut:

$re = '/^(0)[0-9]{9,11}$/';
$str = '081234567890';

preg_match_all($re, $str, $matches);

// Print the entire match result
print_r($matches);
Sedangkan untuk javascript:
const regex = /^(0)[0-9]{9,11}$/g;
const str = `081234567890`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

Digit Angka Uang

Meski Rupiah sedang berganti wajah dengan rupa yang penuh kontroversi karena mirip dengan Mata Uang negara lain, namun regex nya untuk validasi masih tetap sama yakni ^(?:[1-9]\d*|0)$. Function ini akan mengijinkan hanya 0 (nol) atau angka berapapun tanpa diawali 0 dan tanpa tanda baca seperti titik (.) maupun koma (,).
Untuk penggunaan pada PHP seperti berikut :

$re = '/^(?:[1-9]\d*|0)$/';
$str = '20000';

preg_match_all($re, $str, $matches);

// Print the entire match result
print_r($matches);
Sedangkan untuk javascript sebagai berikut:
const regex = /^(?:[1-9]\d*|0)$/g;
const str = `20000`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

Mungkin itu saja, selebihnya jika ada perubahan atau update akan disampaikan melalui post ini.

Terimakasih dan salam hangat

Toto Prayogo

Artikel Terkait

Berlangganan pos via email

Powered by FeedBurner