logo

Rozdiel medzi indexof a vyhľadávaním v JavaScripte

Úvod:

JavaScript je široko používaný programovací jazyk a poskytuje niekoľko vstavaných metód na manipuláciu s reťazcami. Dve z najčastejšie používaných metód na vyhľadávanie určitého znaku alebo podreťazca v reťazci sú indexOf() a Vyhľadávanie() . Aj keď sa tieto dve metódy môžu javiť ako podobné, majú niekoľko kľúčových rozdielov. V tomto článku preskúmame rozdiely medzi indexOf() a search() v JavaScripte.

metóda indexOf():

The indexOf() metóda je vstavaná funkcia JavaScript, ktorá sa používa na nájdenie indexu prvého výskytu podreťazca v rámci daného reťazca. Táto metóda vráti index prvého výskytu zadaného podreťazca, počnúc od začiatku reťazca. Ak sa podreťazec nenájde, metóda sa vráti -1 .

Syntax:

Syntax pre použitie indexOf() metóda je nasledovná:

 string.indexOf(searchValue[, fromIndex]) 

Tu, reťazec je reťazec, ktorý sa má hľadať, searchValue je hodnota, ktorú treba hľadať, a z Indexu je voliteľný parameter, ktorý určuje pozíciu v reťazci, kde má vyhľadávanie začať. Ak z Indexu sa neposkytuje, indexOf() metóda spustí vyhľadávanie od začiatku reťazca. Ak z Indexu je a negatívne hodnotu, vyhľadávanie začne od konca reťazca.

Príklad:

binárny strom zásielkový prechod

Zoberme si príklad na pochopenie indexof() metóda:

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

Výkon:

 16 

Vysvetlenie:

Tu, metóda indexOf(). hľadá prvý výskyt slova 'silný' v reťazci „JavaScript je výkonný programovací jazyk“ . Od slova 'silný' sa objaví v indexe 16 , metóda vráti 16 .

metóda vyhľadávania():

The metóda search(). je tiež vstavaná funkcia JavaScript, ktorá sa používa na nájdenie indexu prvého znaku podreťazca v rámci daného reťazca. Táto metóda vráti index prvého výskytu zadaného podreťazca, začínajúc od začiatku reťazca. Ak sa podreťazec nenájde, metóda sa vráti -1 .

Syntax:

Syntax pre použitie metóda search(). je nasledujúca:

 string.search(regexp) 

Tu, reťazec je reťazec, ktorý sa má hľadať, a regulárny výraz je regulárny výraz vzor na vyhľadávanie. Ak regulárny výraz vzor sa nájde, Vyhľadávanie() metóda vráti index prvého znaku zhody. Ak sa vzor regulárneho výrazu nenájde, metóda sa vráti -1 .

Príklad:

Zoberme si príklad na pochopenie Vyhľadávanie() metóda:

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

Výkon:

 16 

Vysvetlenie:

Tu, Vyhľadávanie() metóda hľadá regulárny výraz vzor /silný/ v reťazci „JavaScript je výkonný programovací jazyk“ . Pretože vzor regulárneho výrazu sa zhoduje so slovom 'silný' , metóda vráti 16 .

Rozdiely medzi indexOf() a search():

Hoci oboje indexOf() a Vyhľadávanie() metódy sa používajú na vyhľadávanie podreťazca v rámci daného reťazca, majú niekoľko kľúčových rozdielov. Pozrime sa na tieto rozdiely vedľa seba:

metóda indexOf(). metóda vyhľadávania().
indexOf() metóda hľadá zadaný podreťazec v rámci daného reťazca. Vyhľadávanie() metóda hľadá vzor regulárneho výrazu v rámci daného reťazca.
Metóda indexOf() vracia index prvého výskytu zadaného podreťazca. Metóda search() vracia index prvého znaku zhody.
Metóda indexOf() nepodporuje regulárne výrazy. Metóda search() podporuje regulárne výrazy.
Metóda indexOf() môže akceptovať voliteľný parameter fromIndex na spustenie vyhľadávania zo špecifického indexu. Metóda search() neakceptuje voliteľný parameter na spustenie vyhľadávania zo špecifického indexu.
Metóda indexOf() je rýchlejšia ako metóda search(), pretože nepodporuje regulárne výrazy. Metóda search() je pomalšia ako metóda indexOf(), pretože podporuje regulárne výrazy.
Metóda indexOf() rozlišuje veľké a malé písmená. Metóda search() v predvolenom nastavení tiež rozlišuje malé a veľké písmená, ale pomocou príkazu /i príznak vo vzore regulárneho výrazu.
Metóda indexOf() je široko používaná na jednoduché vyhľadávanie reťazcov. Metóda search() sa široko používa na porovnávanie komplexných vzorov pomocou regulárnych výrazov.

Záver:

Na záver oboje indexOf() a Vyhľadávanie() metódy sú užitočné na vyhľadávanie podreťazca v rámci daného reťazca. Majú však niekoľko kľúčových rozdielov, vďaka ktorým sú vhodné pre rôzne prípady použitia. Metóda indexOf() je rýchlejšia a vhodnejšia na jednoduché vyhľadávanie reťazcov, zatiaľ čo metóda search() podporuje regulárne výrazy a je vhodnejšia na porovnávanie komplexných vzorov. Je dôležité zvoliť si vhodnú metódu na základe špecifických požiadaviek vášho programu.