Fiind destul de nou pentru JavaScript, am'm în imposibilitatea de a discerne când să utilizeze fiecare dintre acestea.
Poate cineva clarifica acest lucru pentru mine?
Dacă aveți nevoie de o expresie regulată, utilizarea de căutare(). În caz contrar,
indexOf()` va fi mai rapid.
Funcția de căutare (o descriere aici) are o expresie regulată, care vă permite pentru a se potrivi împotriva mai sofisticate tipare, case-insensitive siruri de caractere, etc., în timp ce indexOf (o descriere aici) pur și simplu se potrivește cu un literal șir de caractere. Cu toate acestea, indexOf, de asemenea, vă permite să specificați un început index.
IndexOf() - se acceptă literali șir sau un șir de obiecte, dar *nu *** expresii regulate. Se acceptă, de asemenea, o bază zero valoare întreagă pentru a începe căutarea de la, de exemplu:
De căutare() - acceptă atât literali șir sau un șir de obiecte și expresii regulate. Dar nu't acceptă un index pentru a începe căutarea de la.
indexOf() și de căutare()
i) reveni la prima apariție a căutat valoare
ii) return -1 dacă nu am găsit
să str='Cartea este rezervat pentru livrare' str.indexOf('b') // returnează poziția 8 str.căutare('b') // returnează poziția 8
i) vă pot da incepand de căutare poziție ca un al doilea argument
str.indexOf('k') // 3 str.indexOf('k',4) // 11 (se începe căutarea de la poziția 4)
valoare de căutare poate fi o expresie regulată
str.search('book') // 8
str.search(/book/i) // 0 ( /i =case-insensitive (Book == book)
Fără o regex, nu există nici o diferență practică între indexOf și cautare.
Exemplul de mai jos vă oferă un live demo:
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>