Giriiş:
JavaScript yaygın olarak kullanılan bir programlama dilidir ve dizeleri işlemek için çeşitli yerleşik yöntemler sağlar. Belirli bir karakter veya alt dize için bir dize aramak için en yaygın kullanılan yöntemlerden ikisi şunlardır: indeksi() Ve aramak() . Bu iki yöntem işlevsellik açısından benzer görünse de aralarında birkaç önemli fark vardır. Bu makalede, JavaScript'te indexOf() ve search() arasındaki farkları inceleyeceğiz.
indexOf() Yöntem:
indeksi() yöntemi, belirli bir dize içindeki bir alt dizenin ilk oluşumunun dizinini bulmak için kullanılan yerleşik bir JavaScript işlevidir. Bu yöntem, dizenin başlangıcından başlayarak, belirtilen alt dizenin ilk oluşumunun dizinini döndürür. Alt dize bulunamazsa yöntem şunu döndürür: -1 .
Sözdizimi:
Kullanmak için sözdizimi indeksi() yöntem şu şekildedir:
string.indexOf(searchValue[, fromIndex])
Burada, sicim aranacak dizedir, aramaDeğeri aranacak değerdir ve fromIndex dizede aramanın başlaması gereken konumu belirten isteğe bağlı parametredir. Eğer fromIndex sağlanmamıştır, indeksi() yöntem aramayı dizenin başından başlatır. Eğer fromIndex bir olumsuz değer, arama dizenin sonundan başlar.
Örnek:
np.nerede
Anlamak için bir örnek verelim indeksi() yöntem:
let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index);
Çıktı:
16
Açıklama:
Burada, indexOf() yöntemi kelimenin ilk geçtiği yeri arar 'güçlü' dizede 'JavaScript güçlü bir programlama dilidir' . Kelimeden beri 'güçlü' indekste görünüyor 16 , yöntem şunu döndürür: 16 .
arama() Yöntemi:
arama() yöntemi aynı zamanda belirli bir dize içindeki bir alt dizenin ilk karakterinin dizinini bulmak için kullanılan yerleşik bir JavaScript işlevidir. Bu yöntem, dizenin başlangıcından başlayarak, belirtilen alt dizenin ilk oluşumunun dizinini döndürür. Alt dize bulunamazsa yöntem şunu döndürür: -1 .
Sözdizimi:
Kullanmak için sözdizimi arama() yöntemi Şöyleki:
string.search(regexp)
Burada, sicim aranacak dizedir ve normal ifade bu Düzenli ifade Aranacak desen. Eğer Düzenli ifade desen bulunur, aramak() yöntem eşleşmenin ilk karakterinin dizinini döndürür. Düzenli ifade modeli bulunamazsa yöntem şunu döndürür: -1 .
Örnek:
Anlamak için bir örnek verelim aramak() yöntem:
let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index);
Çıktı:
16
Açıklama:
Burada, aramak() yöntem aramaları Düzenli ifade model /güçlü/ dizede 'JavaScript güçlü bir programlama dilidir' . Düzenli ifade kalıbı kelimeyle eşleştiğinden 'güçlü' , yöntem şunu döndürür: 16 .
indexOf() ve search() arasındaki farklar:
Her ikisi de indeksi() Ve aramak() yöntemleri belirli bir dize içinde bir alt dizeyi aramak için kullanılır, ancak birkaç önemli farkları vardır. Şimdi bu farklılıklara yan yana bakalım:
indexOf() Yöntem | search() Yöntemi |
---|---|
indeksi() yöntem, belirli bir dize içinde belirtilen bir alt dizeyi arar. | aramak() yöntem, belirli bir dize içindeki normal ifade modelini arar. |
indexOf() yöntemi, belirtilen alt dizenin ilk oluşumunun dizinini döndürür. | search() yöntemi, eşleşmenin ilk karakterinin dizinini döndürür. |
indexOf() yöntemi normal ifadeleri desteklemez. | search() yöntemi normal ifadeleri destekler. |
indexOf() yöntemi, aramayı belirli bir dizinden başlatmak için fromIndex'ten isteğe bağlı bir parametre kabul edebilir. | search() yöntemi, aramayı belirli bir dizinden başlatmak için isteğe bağlı bir parametreyi kabul etmez. |
indexOf() yöntemi, normal ifadeleri desteklemediğinden search() yönteminden daha hızlıdır. | search() yöntemi, normal ifadeleri desteklediğinden indexOf() yönteminden daha yavaştır. |
indexOf() yöntemi büyük/küçük harfe duyarlıdır. | search() yöntemi de varsayılan olarak büyük/küçük harfe duyarlıdır, ancak kullanılarak büyük/küçük harfe duyarlı hale getirilebilir. /i bayrak düzenli ifade deseninde. |
indexOf() yöntemi basit dize aramaları için yaygın olarak kullanılır. | Search() yöntemi, düzenli ifadeler kullanılarak karmaşık desen eşleştirme için yaygın olarak kullanılır. |
Çözüm:
Sonuç olarak her ikisi de indeksi() Ve aramak() yöntemler belirli bir dize içinde bir alt dizeyi aramak için kullanışlıdır. Bununla birlikte, onları farklı kullanım durumları için uygun kılan birkaç temel farklılığa sahiptirler. indexOf() yöntemi daha hızlıdır ve basit dize aramaları için daha uygundur; search() yöntemi ise normal ifadeleri destekler ve karmaşık desen eşleştirme için daha uygundur. Programınızın özel gereksinimlerine göre uygun yöntemi seçmek önemlidir.