logo

Diferència entre indexof i cerca en JavaScript

Introducció:

JavaScript és un llenguatge de programació molt utilitzat i proporciona diversos mètodes integrats per manipular cadenes. Dos dels mètodes més utilitzats per cercar una cadena per a un caràcter o subcadena específics són índex de() i cerca() . Tot i que aquests dos mètodes poden semblar similars en funcionalitat, tenen algunes diferències clau. En aquest article, explorarem les diferències entre indexOf() i search() a JavaScript.

indexOf() Mètode:

El índex de() El mètode és una funció de JavaScript integrada que s'utilitza per trobar l'índex de la primera ocurrència d'una subcadena dins d'una cadena determinada. Aquest mètode retorna l'índex de la primera ocurrència de la subcadena especificada, començant des del principi de la cadena. Si no es troba la subcadena, retorna el mètode -1 .

Sintaxi:

La sintaxi per utilitzar el índex de() mètode és el següent:

 string.indexOf(searchValue[, fromIndex]) 

Aquí, corda és la cadena que cal cercar, cerca valor és el valor a cercar, i de l'índex és el paràmetre opcional que especifica la posició de la cadena on ha de començar la cerca. Si el de l'índex no es proporciona, el índex de() mètode inicia la cerca des del principi de la cadena. Si de l'índex és un negatiu valor, la cerca comença des del final de la cadena.

Exemple:

codi java declaració if else

Posem un exemple per entendre el índex de() mètode:

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

Sortida:

 16 

Explicació:

Aquí, el mètode indexOf(). cerca la primera aparició de la paraula 'potent' a la corda 'JavaScript és un llenguatge de programació potent' . Des de la paraula 'potent' apareix a l'índex 16 , el mètode torna 16 .

cerca () Mètode:

El mètode de cerca (). també és una funció de JavaScript integrada que s'utilitza per trobar l'índex del primer caràcter d'una subcadena dins d'una cadena determinada. Aquest mètode retorna l'índex de la primera ocurrència de la subcadena especificada, començant des del principi de la cadena. Si no es troba la subcadena, retorna el mètode -1 .

Sintaxi:

La sintaxi per utilitzar el mètode de cerca (). és el següent:

 string.search(regexp) 

Aquí, corda és la cadena que s'ha de cercar i expressió regular és el Expressió normal patró a buscar. Si el Expressió normal es troba el patró, el cerca() El mètode retorna l'índex del primer caràcter de la coincidència. Si no es troba el patró d'expressió regular, el mètode torna -1 .

Exemple:

Posem un exemple per entendre el cerca() mètode:

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

Sortida:

 16 

Explicació:

Aquí, el cerca() mètode cerca el Expressió normal patró /potent/ a la corda 'JavaScript és un llenguatge de programació potent' . Com que el patró d'expressió regular coincideix amb la paraula 'potent' , el mètode torna 16 .

Diferències entre indexOf() i search():

Encara que tots dos índex de() i cerca() Els mètodes s'utilitzen per cercar una subcadena dins d'una cadena determinada, tenen algunes diferències clau. Fem una ullada a aquestes diferències una al costat de l'altra:

indexOf() Mètode cerca () Mètode
índex de() El mètode cerca una subcadena especificada dins d'una cadena determinada. cerca() El mètode cerca un patró d'expressió regular dins d'una cadena determinada.
El mètode indexOf() retorna l'índex de la primera ocurrència de la subcadena especificada. El mètode search() retorna l'índex del primer caràcter de la coincidència.
El mètode indexOf() no admet expressions regulars. El mètode search() admet expressions regulars.
El mètode indexOf() pot acceptar un paràmetre opcional fromIndex per iniciar la cerca des d'un índex específic. El mètode search() no accepta un paràmetre opcional per iniciar la cerca des d'un índex específic.
El mètode indexOf() és més ràpid que el mètode search() perquè no admet expressions regulars. El mètode search() és més lent que el mètode indexOf() perquè admet expressions regulars.
El mètode indexOf() distingeix entre majúscules i minúscules. El mètode search() també distingeix entre majúscules i minúscules de manera predeterminada, però es pot fer que no distingeix entre majúscules i minúscules mitjançant l' /i bandera en el patró d'expressió regular.
El mètode indexOf() s'utilitza àmpliament per a cerques de cadenes simples. El mètode search() s'utilitza àmpliament per a la concordança de patrons complexos mitjançant expressions regulars.

Conclusió:

En conclusió, tots dos índex de() i cerca() Els mètodes són útils per cercar una subcadena dins d'una cadena determinada. Tanmateix, tenen algunes diferències clau que els fan adequats per a diferents casos d'ús. El mètode indexOf() és més ràpid i més adequat per a cerques de cadenes simples, mentre que el mètode search() admet expressions regulars i és més adequat per a la concordança de patrons complexos. És important triar el mètode adequat en funció dels requisits específics del vostre programa.