⊗jsSpREESCh 99 of 294 menu

Escape Karakter Khusus dalam Regex JavaScript

Misalkan kita ingin membuat karakter khusus mewakili dirinya sendiri. Untuk itu, karakter tersebut perlu di-escape menggunakan backslash. Mari kita lihat contohnya.

Contoh

Dalam contoh berikut, penulis regex ingin pola pencarian terlihat seperti: huruf 'a', lalu tanda plus '+', lalu huruf 'x'. Namun, penulis kode tidak meng-escape karakter '+' sehingga pola pencarian sebenarnya terlihat seperti: huruf 'a' satu kali atau lebih, lalu huruf 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a+x/g, '!');

Hasilnya, yang tersimpan di variabel adalah:

'a+x ! ! !'

Contoh

Sekarang penulis meng-escape tanda plus dengan backslash. Sekarang pola pencarian terlihat seperti yang diinginkan: huruf 'a', lalu tanda plus '+', lalu huruf 'x'.

let str = 'a+x ax aax aaax'; let res = str.replace(/a\+x/g, '!');

Hasilnya, yang tersimpan di variabel adalah:

'! ax aax aaax'

Contoh

Dalam contoh ini, polanya terlihat seperti: huruf 'a', lalu titik '.', lalu huruf 'x':

let str = 'a.x abx azx'; let res = str.replace(/a\.x/g, '!');

Hasilnya, yang tersimpan di variabel adalah:

'! abx azx'

Contoh

Dalam contoh berikut, penulis lupa meng-escape titik dan semua substring yang cocok tergantikan, karena titik yang tidak di-escape mewakili karakter apa pun:

let str = 'a.x abx azx'; let res = str.replace(/a.x/g, '!');

Hasilnya, yang tersimpan di variabel adalah:

'! ! !'

Catatan

Perhatikan bahwa jika Anda lupa backslash untuk titik (ketika seharusnya mewakili dirinya sendiri) - ini mungkin tidak terlihat:

'a.x'.replace(/a.x/g, '!'); // mengembalikan '!', seperti yang kita inginkan

Secara visual berjalan dengan benar (karena titik mewakili karakter apa pun, termasuk titik biasa '.'). Tetapi jika string yang diganti diubah - kita akan melihat kesalahan kita:

'a.x abx azx'.replace(/a.x/g, '!'); // mengembalikan '! ! !', sedangkan yang diharapkan '! abx azx'

Daftar karakter khusus dan biasa

Jika meng-escape karakter biasa - tidak ada masalah - karakter tersebut tetap akan mewakili dirinya sendiri. Pengecualian - angka, angka tidak dapat di-escape.

Seringkali muncul keraguan, apakah suatu karakter adalah karakter khusus. Beberapa sampai pada titik meng-escape semua karakter yang mencurigakan secara berurutan. Namun, ini adalah praktik yang buruk (mengacaukan regex dengan backslash).

Termasuk karakter khusus: $ ^ . * + ? \ / {} [] () |

Bukan karakter khusus: @ : , ' " ; - _ = < > % # ~ `& !

Tugas Praktis

Diberikan string:

let str = 'a.a aba aea';

Tuliskan regex yang akan menemukan string 'a.a', tanpa mengambil yang lainnya.

Diberikan string:

let str = '2+3 223 2223';

Tuliskan regex yang akan menemukan string '2+3', tanpa mengambil yang lainnya.

Diberikan string:

let str = '23 2+3 2++3 2+++3 345 567';

Tuliskan regex yang akan menemukan string '2+3', '2++3', '2+++3', tanpa mengambil yang lainnya (+ bisa berapa pun jumlahnya).

Diberikan string:

let str = '23 2+3 2++3 2+++3 445 677';

Tuliskan regex yang akan menemukan string '23', '2+3', '2++3', '2+++3', tanpa mengambil yang lainnya.

Diberikan string:

let str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';

Tuliskan regex yang akan menemukan string '*q+', '*qq+', '*qqq+', tanpa mengambil yang lainnya.

Diberikan string:

let str = '[abc] {abc} abc (abc) [abc]';

Tuliskan regex yang akan menemukan string dalam kurung siku dan menggantinya dengan '!'.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak