objects ejemplo array javascript string

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:

  1. "babyelephant" .indexOf ("e"); // te da 4
  2. "babyelephant" .indexOf ("e", 5); // le da 6 cuando la búsqueda comienza desde la 6ª posición o el 5º índice.
  3. 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 búsqueda encuentra que coincide con una expresión regular, pero no tiene desplazamientos. IndexOf usa literales para hacer coincidir, pero tiene un desplazamiento.

Índice de

Buscar


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>


indexOf es para subcadenas simples, la search puede hacer expresiones regulares.


Si necesita una expresión regular, use search() . De lo contrario, indexOf() va a ser más rápido.