logo

Differenza tra indexof e ricerca in JavaScript

Introduzione:

JavaScript è un linguaggio di programmazione ampiamente utilizzato e fornisce diversi metodi integrati per manipolare le stringhe. Due dei metodi più comunemente utilizzati per cercare in una stringa un carattere o una sottostringa specifici sono indice di() E ricerca() . Sebbene questi due metodi possano sembrare simili in termini di funzionalità, presentano alcune differenze fondamentali. In questo articolo esploreremo le differenze tra indexOf() e search() in JavaScript.

metodo indiceOf():

IL indice di() Il metodo è una funzione JavaScript incorporata utilizzata per trovare l'indice della prima occorrenza di una sottostringa all'interno di una determinata stringa. Questo metodo restituisce l'indice della prima occorrenza della sottostringa specificata, a partire dall'inizio della stringa. Se la sottostringa non viene trovata, il metodo restituisce -1 .

Sintassi:

La sintassi per utilizzare il file indice di() il metodo è il seguente:

 string.indexOf(searchValue[, fromIndex]) 

Qui, corda è la stringa da cercare, searchValue è il valore da cercare e daIndice è il parametro facoltativo che specifica la posizione nella stringa da cui deve iniziare la ricerca. Se la daIndice non è fornito, il indice di() Il metodo avvia la ricerca dall'inizio della stringa. Se daIndice è un negativo valore, la ricerca inizia dalla fine della stringa.

Esempio:

triplice inverno

Facciamo un esempio per capire il indice di() metodo:

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

Produzione:

 16 

Spiegazione:

Ecco, il metodo indiceOf() cerca la prima occorrenza della parola 'potente' nella corda 'JavaScript è un potente linguaggio di programmazione' . Fin dalla parola 'potente' appare all'indice 16 , il metodo restituisce 16 .

metodo search():

IL metodo search() è anche una funzione JavaScript incorporata utilizzata per trovare l'indice del primo carattere di una sottostringa all'interno di una determinata stringa. Questo metodo restituisce l'indice della prima occorrenza della sottostringa specificata, a partire dall'inizio della stringa. Se la sottostringa non viene trovata, il metodo restituisce -1 .

Sintassi:

La sintassi per utilizzare il file metodo search() è come segue:

 string.search(regexp) 

Qui, corda è la stringa da cercare e espressione regolare è il espressione regolare modello da cercare. Se la espressione regolare viene trovato il modello, il ricerca() Il metodo restituisce l'indice del primo carattere della corrispondenza. Se il modello dell'espressione regolare non viene trovato, il metodo restituisce un risultato -1 .

Esempio:

Facciamo un esempio per capire il ricerca() metodo:

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

Produzione:

 16 

Spiegazione:

Ecco, il ricerca() Il metodo cerca il file espressione regolare modello /potente/ nella corda 'JavaScript è un potente linguaggio di programmazione' . Poiché il modello dell'espressione regolare corrisponde alla parola 'potente' , il metodo restituisce 16 .

Differenze tra indexOf() e search():

Sebbene entrambi indice di() E ricerca() vengono utilizzati per cercare una sottostringa all'interno di una determinata stringa, presentano alcune differenze chiave. Diamo un'occhiata a queste differenze fianco a fianco:

metodo indiceDi() metodo search()
indice di() Il metodo cerca una sottostringa specificata all'interno di una determinata stringa. ricerca() Il metodo cerca un modello di espressione regolare all'interno di una determinata stringa.
Il metodo indexOf() restituisce l'indice della prima occorrenza della sottostringa specificata. Il metodo search() restituisce l'indice del primo carattere della corrispondenza.
Il metodo indexOf() non supporta le espressioni regolari. Il metodo search() supporta le espressioni regolari.
Il metodo indexOf() può accettare un parametro facoltativo fromIndex per avviare la ricerca da un indice specifico. Il metodo search() non accetta un parametro opzionale per avviare la ricerca da un indice specifico.
Il metodo indexOf() è più veloce del metodo search() perché non supporta le espressioni regolari. Il metodo search() è più lento del metodo indexOf() perché supporta le espressioni regolari.
Il metodo indexOf() fa distinzione tra maiuscole e minuscole. Anche il metodo search() fa distinzione tra maiuscole e minuscole per impostazione predefinita, ma può essere reso senza distinzione tra maiuscole e minuscole utilizzando il metodo /i bandiera nel modello di espressione regolare.
Il metodo indexOf() è ampiamente utilizzato per semplici ricerche di stringhe. Il metodo search() è ampiamente utilizzato per la corrispondenza di modelli complessi utilizzando espressioni regolari.

Conclusione:

In conclusione, entrambi indice di() E ricerca() I metodi sono utili per cercare una sottostringa all'interno di una determinata stringa. Tuttavia, presentano alcune differenze chiave che li rendono adatti a diversi casi d’uso. Il metodo indexOf() è più veloce e più adatto per ricerche di stringhe semplici, mentre il metodo search() supporta le espressioni regolari ed è più adatto per la corrispondenza di modelli complessi. È importante scegliere il metodo appropriato in base ai requisiti specifici del tuo programma.