ejemplo - slice javascript
En JavaScript, ¿cuál es la diferencia entre indexOf() y search()? (7)
Creo que la principal diferencia es que la búsqueda acepta expresiones regulares.
Verifique esta referencia:
Al ser bastante nuevo en JavaScript, no puedo discernir cuándo usar cada uno de estos.
¿Alguien puede ayudarme a aclarar esto?
IndexOf () - acepta cadenas literales u objetos de cadena pero no expresiones regulares. También acepta un valor entero basado en cero para iniciar su búsqueda, por ejemplo:
- "babyelephant" .indexOf ("e"); // te da 4
- "babyelephant" .indexOf ("e", 5); // le da 6 cuando la búsqueda comienza desde la 6ª posición o el 5º índice.
- var m = / e /; "babyelephant" .indexOf (m); // da -1 ya que no acepta expresiones regulares.
Search (): acepta ambos literales de cadena u objetos de cadena y expresiones regulares. Pero no acepta un índice para comenzar la búsqueda.
La función de búsqueda ( una descripción aquí ) toma una expresión regular, que le permite hacer coincidir patrones más sofisticados, cadenas insensibles a mayúsculas y minúsculas, etc., mientras que indexOf ( una descripción aquí ) simplemente coincide con una cadena literal. Sin embargo, indexOf también le permite especificar un índice inicial.
Sin una regex , no hay diferencia práctica entre indexOf y search .
El siguiente ejemplo ofrece una demo vivo:
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>
Si necesita una expresión regular, use search()
. De lo contrario, indexOf()
va a ser más rápido.