logo

Skirtumas tarp indexof ir paieškos JavaScript

Įvadas:

„JavaScript“ yra plačiai naudojama programavimo kalba, kurioje pateikiami keli įtaisytieji metodai manipuliuoti eilutėmis. Du dažniausiai naudojami metodai ieškant konkretaus simbolio arba poeilutės yra indexOf() ir Paieška() . Nors šių dviejų metodų funkcionalumas gali atrodyti panašus, jie turi keletą pagrindinių skirtumų. Šiame straipsnyje mes išnagrinėsime skirtumus tarp indexOf() ir search() JavaScript.

indexOf() metodas:

The indexOf() Metodas yra integruota JavaScript funkcija, kuri naudojama rasti pirmojo poeilutės pasireiškimo indeksą tam tikroje eilutėje. Šis metodas grąžina pirmojo nurodytos poeilutės pasireiškimo indeksą, pradedant nuo eilutės pradžios. Jei poeilutė nerasta, metodas grąžinamas -1 .

Sintaksė:

Naudojimo sintaksė indexOf() metodas yra toks:

 string.indexOf(searchValue[, fromIndex]) 

Čia styga yra ieškoma eilutė, SearchValue yra vertė, kurios reikia ieškoti, ir išIndekso yra pasirenkamas parametras, nurodantis vietą eilutėje, nuo kurios turi prasidėti paieška. Jei išIndekso nėra teikiama, indexOf() metodas pradeda paiešką nuo eilutės pradžios. Jeigu išIndekso yra neigiamas reikšmę, paieška pradedama nuo eilutės pabaigos.

Pavyzdys:

pakeisti visus

Paimkime pavyzdį, kad suprastume indexof() metodas:

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

Išvestis:

 16 

Paaiškinimas:

Čia, indexOf() metodas ieško pirmojo žodžio pasikartojimo 'galingas' stygoje „JavaScript yra galinga programavimo kalba“ . Nuo žodžio 'galingas' pasirodo indekse 16 , metodas grąžinamas 16 .

paieškos() metodas:

The paieškos () metodas taip pat yra integruota „JavaScript“ funkcija, kuri naudojama tam tikroje eilutėje rasti pirmojo poeilutės simbolio indeksą. Šis metodas grąžina pirmojo nurodytos poeilutės pasireiškimo indeksą, pradedant nuo eilutės pradžios. Jei poeilutė nerasta, metodas grąžinamas -1 .

Sintaksė:

Naudojimo sintaksė paieškos () metodas yra taip:

 string.search(regexp) 

Čia styga yra ieškoma eilutė ir regexp yra Įprasta išraiška ieškoti šablono. Jei Įprasta išraiška rastas modelis, Paieška() metodas grąžina pirmojo atitikties simbolio indeksą. Jei reguliariosios išraiškos šablonas nerastas, metodas grąžinamas -1 .

Pavyzdys:

Paimkime pavyzdį, kad suprastume Paieška() metodas:

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

Išvestis:

 16 

Paaiškinimas:

Čia, Paieška() metodas ieško Įprasta išraiška modelis /galingas/ stygoje „JavaScript yra galinga programavimo kalba“ . Kadangi reguliariosios išraiškos modelis atitinka žodį 'galingas' , metodas grįžta 16 .

Skirtumai tarp indexOf() ir search():

Nors abu indexOf() ir Paieška() metodai naudojami ieškant poeilutės tam tikroje eilutėje, jie turi keletą pagrindinių skirtumų. Pažvelkime į šiuos skirtumus greta:

indexOf() metodas paieškos() metodas
indexOf() metodas ieško nurodytos eilutės nurodytoje eilutėje. Paieška() metodas ieško reguliaraus posakio šablono nurodytoje eilutėje.
Metodas indexOf() grąžina pirmojo nurodytos poeilutės pasireiškimo indeksą. Metodas search() grąžina pirmojo atitikties simbolio indeksą.
Metodas indexOf() nepalaiko reguliarių išraiškų. Search() metodas palaiko reguliariąsias išraiškas.
Metodas indexOf() gali priimti pasirenkamą parametrą fromIndex, kad būtų pradėta paieška nuo konkretaus indekso. Metodas search() nepriima pasirenkamo parametro, norint pradėti paiešką nuo konkretaus indekso.
Metodas indexOf() yra greitesnis nei paieškos() metodas, nes nepalaiko reguliarių išraiškų. Metodas search() yra lėtesnis nei indexOf() metodas, nes palaiko reguliariąsias išraiškas.
IndexOf() metodas yra didžiosios ir mažosios raidės. Pagal numatytuosius nustatymus paieškos() metodas taip pat yra didžiosios ir mažosios raidės, tačiau jį galima neskirti naudojant /i vėliava reguliariosios išraiškos šablone.
IndexOf() metodas plačiai naudojamas paprastoms eilučių paieškoms. Metodas search() plačiai naudojamas sudėtingam modelių atitikimui naudojant reguliariąsias išraiškas.

Išvada:

Apibendrinant, tiek indexOf() ir Paieška() metodai yra naudingi ieškant poeilutės nurodytoje eilutėje. Tačiau jie turi keletą pagrindinių skirtumų, dėl kurių jie tinka įvairiems naudojimo atvejams. Metodas indexOf() yra greitesnis ir tinkamesnis paprastoms eilučių paieškoms, o paieškos() metodas palaiko reguliariąsias išraiškas ir yra labiau tinkamas sudėtingam šablonų derinimui. Svarbu pasirinkti tinkamą metodą, atsižvelgiant į konkrečius programos reikalavimus.