Apa perbedaan antara indexOf() dan pencarian()?
Yang cukup baru untuk JavaScript, I'm dapat membedakan kapan harus menggunakan masing-masing.
Siapapun dapat membantu memperjelas hal ini untuk saya?
175
8
Jika anda memerlukan sebuah ekspresi reguler, menggunakan
pencarian()
. Jika tidak,indexOf()
akan menjadi lebih cepat.indexOf
adalah untuk polos substring,search
adalah untuk ekspresi reguler.Fungsi pencarian (satu description here) mengambil ekspresi reguler, yang memungkinkan anda untuk pertandingan melawan lebih canggih patters, case-sensitive string, dll., sementara indexOf (satu description here) hanya pertandingan literal string. Namun, indexOf juga memungkinkan anda untuk menentukan awal indeks.
Saya pikir perbedaan utama adalah bahwa pencarian yang menerima ekspresi reguler.
Periksa referensi ini:
IndexOf() - menerima string literal atau objek string tapi tidak **** ekspresi reguler. Hal ini juga menerima nol berbasis nilai integer untuk memulai pencarian dari, misalnya:
Pencarian() - menerima string literal atau objek string dan ekspresi reguler. Tapi itu doesn't menerima sebuah indeks untuk memulai pencarian.
indexOf() dan pencarian()
i) kembali kejadian pertama dicari nilai
ii) return -1 jika tidak ada yang cocok
mari str='Buku adalah biaya pengiriman' str.indexOf('b') // mengembalikan posisi 8 str.pencarian('b') // mengembalikan posisi 8
i) anda dapat memberikan mulai mencari posisi sebagai argumen kedua
str.indexOf('k') // 3 str.indexOf('k',4) // 11 (ia mulai mencari dari posisi ke-4)
pencarian nilai dapat menjadi ekspresi reguler
referensi
Pencarian menemukan itu's sesuai dengan ekspresi reguler, tetapi tidak memiliki offset. IndexOf menggunakan literal untuk pertandingan, tetapi telah offset.
IndexOf
Cari
Tanpa regex, tidak ada perbedaan praktis antara indexOf dan pencarian.
Di bawah ini contoh memberikan hidup [demo][4]: