logo

Diferencia entre indexof y búsqueda en JavaScript

Introducción:

JavaScript es un lenguaje de programación ampliamente utilizado y proporciona varios métodos integrados para manipular cadenas. Dos de los métodos más utilizados para buscar en una cadena un carácter o subcadena específica son índice de() y buscar() . Aunque estos dos métodos pueden parecer similares en funcionalidad, tienen algunas diferencias clave. En este artículo, exploraremos las diferencias entre indexOf() y search() en JavaScript.

Método indexOf():

El índice de() El método es una función JavaScript incorporada que se utiliza para encontrar el índice de la primera aparición de una subcadena dentro de una cadena determinada. Este método devuelve el índice de la primera aparición de la subcadena especificada, comenzando desde el principio de la cadena. Si no se encuentra la subcadena, el método devuelve -1 .

Sintaxis:

La sintaxis para usar el índice de() método es el siguiente:

 string.indexOf(searchValue[, fromIndex]) 

Aquí, cadena es la cadena a buscar, valor de búsqueda es el valor a buscar, y desdeIndice es el parámetro opcional que especifica la posición en la cadena donde debe comenzar la búsqueda. Si el desdeIndice no se proporciona, el índice de() El método inicia la búsqueda desde el principio de la cadena. Si desdeIndice es un negativo valor, la búsqueda comienza desde el final de la cadena.

Ejemplo:

número de armstrong

Pongamos un ejemplo para entender índice de() método:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

Producción:

 16 

Explicación:

Aquí el método indexOf() busca la primera aparición de la palabra 'poderoso' en la cuerda 'JavaScript es un poderoso lenguaje de programación' . Desde la palabra 'poderoso' aparece en el índice 16 , el método devuelve 16 .

Método de búsqueda():

El método de búsqueda() También es una función JavaScript incorporada que se utiliza para encontrar el índice del primer carácter de una subcadena dentro de una cadena determinada. Este método devuelve el índice de la primera aparición de la subcadena especificada, comenzando desde el principio de la cadena. Si no se encuentra la subcadena, el método devuelve -1 .

Sintaxis:

La sintaxis para usar el método de búsqueda() es como sigue:

 string.search(regexp) 

Aquí, cadena es la cadena que se va a buscar, y expresión regular es el expresión regular patrón a buscar. Si el expresión regular se encuentra el patrón, el buscar() El método devuelve el índice del primer carácter de la coincidencia. Si no se encuentra el patrón de expresión regular, el método devuelve -1 .

Ejemplo:

Pongamos un ejemplo para entender buscar() método:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

Producción:

 16 

Explicación:

Aquí el buscar() El método busca el expresión regular patrón /poderoso/ en la cuerda 'JavaScript es un poderoso lenguaje de programación' . Dado que el patrón de expresión regular coincide con la palabra 'poderoso' , el método devuelve 16 .

Diferencias entre indexOf() y search():

Aunque ambos índice de() y buscar() Los métodos se utilizan para buscar una subcadena dentro de una cadena determinada, tienen algunas diferencias clave. Echemos un vistazo a estas diferencias una al lado de la otra:

Método indexOf() método de búsqueda()
índice de() El método busca una subcadena especificada dentro de una cadena determinada. buscar() El método busca un patrón de expresión regular dentro de una cadena determinada.
El método indexOf() devuelve el índice de la primera aparición de la subcadena especificada. El método search() devuelve el índice del primer carácter de la coincidencia.
El método indexOf() no admite expresiones regulares. El método search() admite expresiones regulares.
El método indexOf() puede aceptar un parámetro opcional fromIndex para iniciar la búsqueda desde un índice específico. El método search() no acepta un parámetro opcional para iniciar la búsqueda desde un índice específico.
El método indexOf() es más rápido que el método search() porque no admite expresiones regulares. El método search() es más lento que el método indexOf() porque admite expresiones regulares.
El método indexOf() distingue entre mayúsculas y minúsculas. El método search() también distingue entre mayúsculas y minúsculas de forma predeterminada, pero se puede hacer que no distinga entre mayúsculas y minúsculas usando el /yo bandera en el patrón de expresión regular.
El método indexOf() se utiliza ampliamente para búsquedas de cadenas simples. El método search() se utiliza ampliamente para la coincidencia de patrones complejos mediante expresiones regulares.

Conclusión:

En conclusión, ambos índice de() y buscar() Los métodos son útiles para buscar una subcadena dentro de una cadena determinada. Sin embargo, tienen algunas diferencias clave que los hacen adecuados para diferentes casos de uso. El método indexOf() es más rápido y más adecuado para búsquedas de cadenas simples, mientras que el método search() admite expresiones regulares y es más adecuado para coincidencias de patrones complejos. Es importante elegir el método apropiado según los requisitos específicos de su programa.