JavaScript merkkijono hakeminen

JavaScriptin merkkijonon hakumetodi:

  • String.indexOf()
  • String.lastIndexOf()
  • String.startsWith()
  • String.endsWith()

String.indexOf()

indexOf() Metodi palauttaa määritetyn tekstin sijainnin merkkijonossaEnsimmäinenIlmenemisen (sijainnin) indeksi:

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate")    // palauttaa 7

Kokeile itse

JavaScript laskee sijainnit alusta.

0 on merkkijonon ensimmäinen sijainti, 1 on toinen, 2 on kolmas ...

String.lastIndexOf()

lastIndexOf() Metodi palauttaa määritetyn tekstin merkkijonosta viimeisen sijainnin:

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate")    // Palauttaa 21

Kokeile itse

Jos tekstiä ei löydyindexOf() ja lastIndexOf() Palauttaa molemmat -1:

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("Bill")    // Palauttaa -1

Kokeile itse

Nämä kaksi menetelmää hyväksyvät toisen parametrin hakun alkamispaikkana:

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate", 15)    // Palauttaa 21

Kokeile itse

lastIndexOf() Metodi etsii eteenpäin (alkaen lopusta alkaen), mikä tarkoittaa, että jos toinen parametri on 15Jos toinen parametri on

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate", 15)    // Palauttaa 7

Kokeile itse

String.search()

search() Metodi etsii määritetyn arvon merkkijonosta ja palauttaa sijainnin:

Esimerkki

let str = "Please locate where 'locate' occurs!";
str.search("locate")     // Palauttaa 7

Kokeile itse

Huomasitko sen?

indexOf() ja search() Nämä kaksi menetelmää, ovatko ne yhtä suuria?

Ne hyväksyvät samat parametrit ja palauttavat samat arvot?

Nämä kaksi menetelmää eivät ole yhtä suuria. Eroja ovat seuraavat:

  • search() Metodi ei voi hyväksyä toista alkamispaikkamääräystä.
  • indexOf() Metodi ei voi käyttää voimakkaita hakuarvoja (säännöllinen lauseke).

Opit lisää säännöllisistä lausekkeista myöhemmin olevissa luvuissa.

String.match()

match()-metodi etsii merkkijonosta vastaavat kohdat säännöllisen lausekkeen perusteella ja palauttaa ne Array-objektina.

Esimerkki 1

Etsi "ain" merkkijonosta:

let text = "Sateet SPANIASSA pysyvät pääasiassa tasangolla";
text.match(/ain/g)    // Palauttaa taulukon [ain,ain,ain]

Kokeile itse

Opit lisää säännöllisistä lausekkeista JS RegExp-luvusta.

Jos säännöllinen lauseke ei sisällä g-muuttujaa (globaalinen haku), match()-metodi palauttaa vain ensimmäisen löydöksen merkkijonosta.

Syntaksi

string.match(regexp)
regexp Välttämätön. Haettava arvo, joka on säännöllinen lauseke.
Palautus: Taulukko, joka sisältää vastaavat kohdat, jokaiselle kohdalle yksi taulukon alkio, jos vastausta ei löydy, arvo on null.

Esimerkki 2

Suorita "ain"-merkin haku yhdessä kirjainkoon katsomatta globaalisti:

let text = "Sateet SPANIASSA pysyvät pääasiassa tasangolla";
text.match(/ain/gi)   // Palauttaa taulukon [ain, AIN, ain, ain]}

Kokeile itse

String.includes()

Jos merkkijono sisältää määritetyn arvon,includes() Metodi palauttaa true.

Esimerkki

let text = "Hello world, welcome to the universe.";
text.includes("world")    // Palauttaa true

Kokeile itse

Selaimen tuki

Internet Explorer ei tue String.includes().

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 40 Safari 9 Opera 28
2015 vuoden 3 kuukausi 2015 vuoden 7 kuukausi 2015 vuoden 8 kuukausi 2015 vuoden 10 kuukausi 2015 vuoden 3 kuukausi

Syntaksi

string.includes(searchvalue, start)
searchvalue Välttämätön. Etsittävä merkkijono.
start Valinnainen. Oletusarvo 0. Etsinnän aloituspaikka.
Palautus: Jos merkkijono sisältää kyseisen arvon, true,muuten palauttaa false.
JS versio: ES6 (2015)

Tarkista, sisältääkö merkkijono "world", aloittaen haun paikasta 12:

let text = "Hello world, welcome to the universe.";
text.includes("world", 12)    // Palauttaa false

Kokeile itse

String.startsWith()

Jos merkkijono alkaa tiettyyn arvoon, startsWith() Metodi palauttaa true,muuten palauttaa false:

Esimerkki

let text = "Hello world, welcome to the universe.";
text.startsWith("Hello")   // Palauttaa true

Kokeile itse

Syntaksi

string.startsWith(searchvalue, start)

Parametarinen arvo

Parametri Kuvaus
searchvalue Välttämätön. Etsittävä arvo.
start Valinnainen. Oletusarvo 0. Etsinnän aloituspaikka.

Esimerkki

let text = "Hello world, welcome to the universe.";
text.startsWith("world")    // Palauttaa false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)    // Palauttaa false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)    // Palauttaa true

Kokeile itse

Huomautus:startsWith() Menetelmä erottaa ison ja pienen kirjaimen.

Internet Explorer ei tue tätä startsWith() Menetelmä.

Ensimmäinen täysin tuettu selainversio on:

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 17 Safari 9 Opera 28
2015 vuoden 3 kuukausi 2015 vuoden 7 kuukausi 2015 vuoden 8 kuukausi 2015 vuoden 10 kuukausi 2015 vuoden 3 kuukausi

String.endsWith()

Jos merkkijono päättyy tiettyyn arvoon, endsWith() Metodi palauttaa true,muuten palauttaa false:

Esimerkki

Tarkista, onko merkkijono päättymässä "Gates":

var text = "Bill Gates";
text.endsWith("Gates")    // Palauttaa true

Kokeile itse

Syntaksi

string.endsWith(searchvalue, length)

Parametarinen arvo

Parametri Kuvaus
searchvalue Välttämätön. Etsittävä arvo.
length Valinnainen. Etsittävän merkkijonon pituus.

Etsi merkkijono, joka päättyy "world":

let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11)    // Palauttaa true

Kokeile itse

Huomautus:endsWith() Menetelmä erottaa ison ja pienen kirjaimen.

Internet Explorer ei tue tätä endsWith() Menetelmä.

Ensimmäinen selainversio, joka tukee tätä menetelmää, on:

Chrome IE Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
Kesäkuu 2016 Helmikuu 2017 Kesäkuu 2017 Syyskuu 2016 Kesäkuu 2016

Täydellinen merkkijonoreferenssikirja

Täydellinen viittaus löytyy täältä JavaScript-merkkijonon referenssikirja.

Tämä oppikirja sisältää kaikkien merkkijonon ominaisuuksien ja metodienviittaukset ja esimerkit.