logo

Rozdíl mezi indexof a vyhledáváním v JavaScriptu

Úvod:

JavaScript je široce používaný programovací jazyk a poskytuje několik vestavěných metod pro manipulaci s řetězci. Dvě z nejčastěji používaných metod pro hledání určitého znaku nebo podřetězce v řetězci jsou indexOf() a Vyhledávání() . Ačkoli se tyto dvě metody mohou jevit jako podobné funkcemi, mají několik klíčových rozdílů. V tomto článku prozkoumáme rozdíly mezi indexOf() a search() v JavaScriptu.

Metoda indexOf():

The indexOf() metoda je vestavěná funkce JavaScriptu, která se používá k nalezení indexu prvního výskytu podřetězce v daném řetězci. Tato metoda vrací index prvního výskytu zadaného podřetězce, počínaje od začátku řetězce. Pokud podřetězec není nalezen, metoda se vrátí -1 .

Syntax:

Syntaxe pro použití indexOf() metoda je následující:

 string.indexOf(searchValue[, fromIndex]) 

Tady, tětiva je řetězec, který se má hledat, searchValue je hodnota, kterou je třeba hledat, a z Indexu je volitelný parametr, který určuje pozici v řetězci, kde má vyhledávání začít. Pokud z Indexu není poskytována, indexOf() metoda spustí vyhledávání od začátku řetězce. Li z Indexu je negativní hodnotu, vyhledávání začíná od konce řetězce.

Příklad:

rr algoritmus

Vezměme si příklad pro pochopení indexof() metoda:

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

Výstup:

 16 

Vysvětlení:

Tady, metoda indexOf(). hledá první výskyt slova 'silný' v řetězci „JavaScript je výkonný programovací jazyk“ . Od slova 'silný' se objeví v indexu 16 , metoda vrátí 16 .

metoda vyhledávání():

The metoda search(). je také vestavěná funkce JavaScriptu, která se používá k nalezení indexu prvního znaku podřetězce v daném řetězci. Tato metoda vrací index prvního výskytu zadaného podřetězce, počínaje od začátku řetězce. Pokud podřetězec není nalezen, metoda se vrátí -1 .

Syntax:

Syntaxe pro použití metoda search(). je následující:

 string.search(regexp) 

Tady, tětiva je řetězec, který má být prohledán, a regulární výraz je regulární výraz vzor k hledání. Pokud regulární výraz vzor je nalezen, Vyhledávání() metoda vrací index prvního znaku shody. Pokud není vzor regulárního výrazu nalezen, metoda se vrátí -1 .

Příklad:

Vezměme si příklad pro pochopení Vyhledávání() metoda:

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

Výstup:

 16 

Vysvětlení:

Tady, Vyhledávání() metoda hledá regulární výraz vzor /silný/ v řetězci „JavaScript je výkonný programovací jazyk“ . Protože vzor regulárního výrazu odpovídá slovu 'silný' , metoda vrátí 16 .

Rozdíly mezi indexOf() a search():

I když obojí indexOf() a Vyhledávání() metody se používají k hledání podřetězce v daném řetězci, mají několik klíčových rozdílů. Pojďme se na tyto rozdíly podívat vedle sebe:

Metoda indexOf(). metoda search().
indexOf() metoda hledá zadaný podřetězec v daném řetězci. Vyhledávání() metoda hledá vzor regulárního výrazu v daném řetězci.
Metoda indexOf() vrací index prvního výskytu zadaného podřetězce. Metoda search() vrací index prvního znaku shody.
Metoda indexOf() nepodporuje regulární výrazy. Metoda search() podporuje regulární výrazy.
Metoda indexOf() může přijmout volitelný parametr fromIndex pro zahájení vyhledávání ze specifického indexu. Metoda search() nepřijímá volitelný parametr pro zahájení vyhledávání ze specifického indexu.
Metoda indexOf() je rychlejší než metoda search(), protože nepodporuje regulární výrazy. Metoda search() je pomalejší než metoda indexOf(), protože podporuje regulární výrazy.
Metoda indexOf() rozlišuje velká a malá písmena. Metoda search() ve výchozím nastavení také rozlišuje malá a velká písmena, ale pomocí příkazu ji lze rozlišit malá a velká písmena příznak /i ve vzoru regulárních výrazů.
Metoda indexOf() je široce používána pro jednoduché vyhledávání řetězců. Metoda search() je široce používána pro komplexní porovnávání vzorů pomocí regulárních výrazů.

Závěr:

Závěrem obojí indexOf() a Vyhledávání() metody jsou užitečné pro hledání podřetězce v daném řetězci. Mají však několik klíčových rozdílů, díky kterým jsou vhodné pro různé případy použití. Metoda indexOf() je rychlejší a vhodnější pro jednoduché vyhledávání řetězců, zatímco metoda search() podporuje regulární výrazy a je vhodnější pro komplexní vyhledávání vzorů. Je důležité zvolit vhodnou metodu na základě konkrétních požadavků vašeho programu.