Yang cukup baru untuk JavaScript, I'm dapat membedakan kapan harus menggunakan masing-masing.
Siapapun dapat membantu memperjelas hal ini untuk saya?
Jika anda memerlukan sebuah ekspresi reguler, menggunakan pencarian()
. Jika tidak, indexOf()
akan menjadi lebih cepat.
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.
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
str.search('book') // 8
str.search(/book/i) // 0 ( /i =case-insensitive (Book == book)
Tanpa regex, tidak ada perbedaan praktis antara indexOf dan pencarian.
Di bawah ini contoh memberikan hidup [demo][4]:
function FromSearch() {
var str = document.getElementById("demo").innerText;
var n = str.search("difference");
document.getElementById("Location").innerHTML = n;
}
function FromindexOf() {
var str = document.getElementById("demo").innerText;
var n = str.indexOf("difference");
document.getElementById("Location").innerHTML = n;
}
<p id="demo">Without a <a href='http://www.w3schools.com/js/js_regexp.asp'>regex</a>, there is no practical difference between <a href='http://www.w3schools.com/jsref/jsref_indexof.asp'>indexOf</a> and <a href='http://www.w3schools.com/jsref/jsref_search.asp'>search</a>
</p>
<button onclick="FromSearch()">From search</button>
<button onclick="FromindexOf()">From indexOf</button>
<p>Location of difference in the above sentence is:</p>
<mark id="Location"></mark>