Menjadi cukup baru untuk JavaScript, saya tidak dapat membedakan kapan harus menggunakan masing-masing.
Adakah yang bisa membantu menjelaskan ini untuk saya?
javascript
string
Colin Brock
sumber
sumber
search
akan mengevaluasi string menjadi regex bahkan jika Anda tidak mau."hello.".search(".")
- mengembalikan 0, bukan 5 karena.
merupakan token regex untuk "karakter apa pun"indexOf
adalah untuk substring polos,search
adalah untuk ekspresi reguler.sumber
Fungsi pencarian ( satu deskripsi di sini ) mengambil ekspresi reguler, yang memungkinkan Anda untuk mencocokkan dengan patters yang lebih canggih, string case-insensitive, dll., Sementara indexOf ( satu deskripsi di sini ) cukup cocok dengan string literal. Namun, indexOf juga memungkinkan Anda menentukan indeks awal.
sumber
Saya pikir perbedaan utamanya adalah bahwa pencarian menerima ekspresi reguler.
Periksa referensi ini:
sumber
IndexOf () - ia menerima string literal atau objek string tetapi bukan ekspresi reguler. Ia juga menerima nilai integer berbasis nol untuk memulai pencariannya, misalnya:
Search () - menerima string literal atau objek string dan ekspresi reguler. Tetapi tidak menerima indeks untuk memulai pencarian.
sumber
"baby/e/lephant".indexOf(m);
?indexOf () dan search ()
umum di keduanya
i) mengembalikan kemunculan pertama dari nilai yang dicari
ii) return -1 jika tidak ditemukan kecocokan
spesial di indexOf ()
i) Anda dapat memberikan posisi pencarian awal sebagai argumen kedua
nilai pencarian dapat berupa ekspresi reguler
referensi
sumber
Pencarian menemukan itu cocok dengan ekspresi reguler, tetapi tidak memiliki offset. IndexOf menggunakan literal untuk mencocokkan, tetapi memiliki offset.
Indeks
Cari
sumber
Tanpa regex , tidak ada perbedaan praktis antara indexOf dan pencarian .
Contoh di bawah ini memberikan demo langsung :
sumber
search
mengubah string menjadiRegExp
, jadi misalnya,str.search("d........e");
juga akan cocok dengan karakter 39.