Mencari Teks dalam String dengan Fungsi Kustom di JavaScript
Dalam pengembangan web atau aplikasi JavaScript, seringkali saya perlu mencari teks tertentu di dalam string yang lebih besar. Meski JavaScript menyediakan metode bawaan seperti indexOf
atau search
, terkadang saya ingin kontrol lebih atas hasil pencarian. Di sini akan dibahas cara membuat fungsi kustom findText
.
1. Pengenalan Fungsi findText
Fungsi findText
dirancang untuk mencari substring dalam string dan mengembalikan teks di posisi substring tersebut. kita bisa menentukan jumlah karakter yang ingin diambil di kiri dan kanan substring yang ditemukan.
Berikut implementasinya:
const findText = (text, f, space = 100) => {
let tf = f;
let find = text.search(tf);
if (find > -1) {
let cl = 0;
if ((find - space) > 0) {
cl = find - space;
} else {
cl = 0;
}
let cr = tf.length;
if ((text.length - find) > space) {
cr = tf.length + find + space;
} else {
cr = text.length;
}
return text.slice(cl, cr);
} else {
return 'not found';
}
};
2. Penjelasan Implementasi
-
text.search(tf)
: Mencari substringtf
di stringtext
. Mengembalikan indeks pertama jika ditemukan, atau-1
jika tidak. -
Menentukan Batas Kiri (
cl
):- Jika posisi ditemukan (
find
) dikurangispace
lebih besar dari 0,cl
diset ke nilai tersebut. - Jika tidak,
cl
diset ke 0 (awal string).
- Jika posisi ditemukan (
-
Menentukan Batas Kanan (
cr
):- Jika panjang string dikurangi posisi ditemukan lebih besar dari
space
,cr
diset ke panjang substring ditambah posisi ditemukan ditambahspace
. - Jika tidak,
cr
diset ke panjang string.
- Jika panjang string dikurangi posisi ditemukan lebih besar dari
-
Mengembalikan Hasil: Jika substring ditemukan, fungsi mengembalikan potongan string dari
cl
hinggacr
menggunakanslice
. Jika tidak ditemukan, fungsi mengembalikan'not found'
.
3. Contoh Penggunaan
const text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
const substring = "consectetur";
const result = findText(text, substring, 20);
console.log(result);
Hasilnya:
"m dolor sit amet, consectetur adipiscing elit. Sed do eiu"
Fungsi findText
menemukan substring "consectetur"
dan mengembalikan 20 karakter sebelum dan sesudahnya.
4. Saat Substring Tidak Ditemukan
Jika substring tidak ada, fungsi akan mengembalikan 'not found'
:
const text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
const substring = "python";
const result = findText(text, substring);
console.log(result); // Output: 'not found'
5. Kegunaan Fungsi findText
Fungsi ini berguna untuk:
- Mencari teks di dokumen besar atau log.
- Analisis data teks.
- Mendapatkan konteks tambahan di teks yang dicari.
Kesimpulan
Fungsi findText
adalah alat efektif untuk mencari dan mengekstrak teks beserta konteksnya. Dengan metode ini, kita bisa dengan mudah menemukan teks dan memperoleh informasi tambahan, yang sangat berguna dalam pengembangan aplikasi dan pemrosesan data.