Regularni izrazi u JavaScriptu: Uvod

Zadnje ažuriranje: 5 de Noviembre de 2025
Regularni izrazi u JavaScriptu

Dobrodošli u ovaj potpuni vodič za regularne izraze u JavaScriptu! U ovom ćemo članku detaljno istražiti što su regularni izrazi, kako se koriste u JavaScriptu i kako vam mogu pomoći da pojednostavite i optimizirate svoj kod. Od osnova do praktičnih primjera, pokriti ćemo sve što trebate znati kako biste na najbolji način počeli iskorištavati regularne izraze u svojim JavaScript projektima. Pa počnimo!

Uvod u regularne izraze

Regularni izrazi obrasci su pretraživanja koji se koriste za pronalaženje i manipuliranje tekstom u znakovnim nizovima. Sastoje se od kombinacije doslovnih znakova i metaznakova, koji definiraju posebna pravila za pronalaženje podudaranja u tekstu. Ta pravila mogu uključivati ​​traženje određenih znakova, raspona znakova, ponavljanja, alternativa i još mnogo toga.

U JavaScriptu se regularni izrazi stvaraju pomoću klase RegExp ili korištenjem doslovnog /patrón/. Uzorak je sam regularni izraz koji je zatvoren između kosih crta. Pogledajmo jednostavan primjer:

const regex = /hola/;

 

U ovom smo primjeru stvorili regularni izraz koji će tražiti niz "zdravo" unutar teksta. Sada kada imamo osnovno razumijevanje regularnih izraza, istražimo neke ključne koncepte i napredne tehnike za rad s njima u JavaScriptu.

Osnovna sintaksa regularnih izraza

Regularni izrazi u JavaScriptu sastoje se od nekoliko ključnih elemenata koji nam omogućuju definiranje složenijih obrazaca pretraživanja. Ovi elementi uključuju doslovne znakove, metaznakove, klase znakova, kvantifikatore, sidra i još mnogo toga. Pogledajmo neke primjere ovih elemenata:

Doslovni likovi

Doslovni znakovi su oni koji se traže onako kako se pojavljuju u tekstu. Na primjer, regularni izraz /hola/ tražit će niz znakova "hello" u tekstualnom nizu. Važno je napomenuti da regularni izrazi razlikuju velika i mala slova, pa /hola/ neće odgovarati "Hello" ili "HELLO".

Metakarakteri

Metaznakovi su posebni znakovi koji imaju posebno značenje u regularnim izrazima. Na primjer, metakarakter . Koristi se za predstavljanje bilo kojeg znaka osim novog retka. Još jedan uobičajeni metakarakter je ^, koji se koristi za označavanje početka tekstualnog niza. Na primjer, regularni izraz /^hola/ odgovarat će bilo kojem tekstualnom nizu koji počinje s "hello".

Klase znakova

Klase znakova koriste se za traženje bilo kojeg znaka unutar određenog skupa. Na primjer, regularni izraz /[aeiou]/ odgovarat će bilo kojem samoglasniku u tekstualnom nizu. Također je moguće koristiti raspone znakova u klasama znakova. Na primjer, regularni izraz /[a-z]/ odgovarat će svakom malom slovu.

Kvantifikatori

Kvantifikatori se koriste za određivanje broja pojavljivanja elementa u regularnom izrazu. Na primjer, kvantifikator * označava da se prethodni element može pojaviti nula ili više puta. Kvantifikator + označava da se prethodni element treba pojaviti jednom ili više puta. Na primjer, regularni izraz /a+/ odgovarat će jednom ili više "a" u tekstualnom nizu.

Sidra

Sidra se koriste za označavanje položaja podudaranja unutar tekstualnog niza. Na primjer, sidro \b odgovara granici riječi. Na primjer, regularni izraz /bholab/ odgovarat će samo riječi "zdravo" kao a puna riječ, bez podudaranja duljih riječi koje sadrže "zdravo" kao dio.

Ovo je samo nekoliko primjera osnovne sintakse regularnih izraza u JavaScriptu. Kako budemo napredovali kroz ovaj članak , istražit ćemo naprednije koncepte i tehnike za rad s regularnim izrazima u JavaScriptu.

Osnovno pretraživanje podudaranja

Jedna od najčešćih operacija koje se izvode s regularnim izrazima je traženje podudaranja u tekstualnom nizu. U JavaScriptu možemo koristiti metodu search() pronaći prvo podudaranje regularnog izraza u tekstualnom nizu. Pogledajmo primjer:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const indice = texto.search(regex);
console.log(indice); // 7

U ovom primjeru koristili smo metodu search() pronaći prvo podudaranje regularnog izraza /mundo/ u tekstualnom nizu "Hello, world!" Metoda search() vraća indeks prvog pronađenog podudaranja ili -1 ako nije pronađeno podudaranje.

Osim metode search(), JavaScript također pruža druge korisne metode za rad s regularnim izrazima, kao što su match(), replace(), split() y test(). Svaka od ovih metoda ima svoju svrhu i može se koristiti prema vašim specifičnim potrebama.

Korištenje modifikatora i zastavica

U JavaScriptu regularni izrazi mogu sadržavati modifikatore i oznake koji omogućuju fleksibilnija i prilagođenija pretraživanja. Modifikatori se dodaju na kraj regularnog izraza i mijenjaju njegovo ponašanje. Neki od najčešćih modifikatora su:

ja (neosjetljiv)

Modifikator i koristi se za pretraživanje bez obzira na velika i mala slova. Na primjer, regularni izraz /hola/i odgovarat će i "hello" i "Hello" ili "HELLO".

g (globalno)

Modifikator g Koristi se za izvođenje globalnog pretraživanja na cijelom tekstualnom nizu, umjesto zaustavljanja na prvom pronađenom podudaranju. Na primjer, regularni izraz /a+/g će odgovarati svim pojavljivanjima jednog ili više "a" u tekstualnom nizu.

  Potpuni vodič za okvire umjetne inteligencije otvorenog koda za agente

m (više reda)

Modifikator m Koristi se za izvođenje pretraživanja u više redaka unutar tekstualnog niza. Na primjer, regularni izraz /^hola/m odgovarat će riječi "zdravo" na početku svakog retka u tekstualnom nizu.

Osim modifikatora, JavaScript također dopušta korištenje zastavica u regularnim izrazima. Zastavice se dodaju nakon druge kose crte kada se stvara regularni izraz pomoću klase RegExp. Neke od najčešćih zastava su:

ja (neosjetljiv)

Kao modifikator i, zastava i izvodi pretraživanje bez obzira na velika i mala slova. Na primjer, regularni izraz new RegExp("hola", "i") odgovarat će i "hello" i "Hello" ili "HELLO".

g (globalno)

Kao modifikator g, zastava g izvodi globalno pretraživanje cijelog tekstualnog niza. Na primjer, regularni izraz new RegExp("a+", "g") će odgovarati svim pojavljivanjima jednog ili više "a" u tekstualnom nizu.

m (više reda)

Kao modifikator m, zastava m izvodi pretragu u više redaka unutar tekstualnog niza. Na primjer, regularni izraz new RegExp("^hola", "m") odgovarat će riječi "zdravo" na početku svakog retka u tekstualnom nizu.

Korištenje modifikatora i zastavica u regularnim izrazima JavaScripta može biti vrlo korisno za prilagođavanje pretraživanja različitim slučajevima i specifičnim zahtjevima. Eksperimentirajte s njima i otkrijte kako možete maksimalno iskoristiti te značajke u svom kodu.

Metaznakovi i posebni znakovi

Metaznakovi i posebni znakovi ključni su elementi u regularnim izrazima koji nam omogućuju snažnija i fleksibilnija pretraživanja. Već smo spomenuli neke metakaraktere, kao npr . y ^, ali postoji mnogo više koje možete koristiti u svojim regularnim izrazima. Pogledajmo neke od najčešćih metakaraktera i posebnih znakova:

. (točka)

Metakarakter . Koristi se za predstavljanje bilo kojeg znaka osim novog retka. Na primjer, regularni izraz /h.t/ podudarat će se s "hat", "hot", "hit" i bilo kojom drugom riječi od tri slova koja počinje s "h" i završava s "t."

\ (obrnuta kosa crta)

Obrnuta kosa crta koristi se za izbjegavanje posebnih znakova u regularnom izrazu. Na primjer, ako želite tražiti doslovnu točku u tekstualnom nizu, morate je izbjeći pomoću obrnute kose crte. Uobičajeni izraz /www\.google\.com/ odgovarat će tekstualnom nizu "www.google.com".

\d (znamenka)

Metakarakter \d koristi se za traženje bilo koje znamenke od 0 do 9. Na primjer, regularni izraz /\d+/ će se podudarati s bilo kojom jednom ili više znamenkastim brojem u tekstualnom nizu.

\w (alfanumerički znak)

Metakarakter \w koristi se za traženje bilo kojeg alfanumeričkog znaka (velikih i malih slova, znamenki i podvlaka). Na primjer, regularni izraz /\w+/ odgovarat će bilo kojoj riječi od jednog ili više alfanumeričkih znakova u tekstualnom nizu.

Ovo je samo nekoliko primjera metaznakova i posebnih znakova koje možete koristiti u regularnim izrazima. Kako se bolje upoznajete s regularnim izrazima u JavaScriptu, otkrit ćete široku paletu opcija za pročišćavanje pretraživanja i manipulacije tekstom.

Klase i rasponi znakova

Klase znakova još su jedan ključni element u regularnim izrazima koji nam omogućuju pretraživanje bilo kojeg znaka unutar određenog skupa. U JavaScriptu možemo koristiti zagrade [] za definiranje klase znakova. Pogledajmo neke primjere klasa i raspona znakova:

[aeiou]

Klasa karaktera [aeiou] odgovarat će bilo kojem samoglasniku u tekstualnom nizu. Na primjer, regularni izraz /[aeiou]/ odgovarat će "a", "e", "i", "o" ili "u" u tekstualnom nizu.

[the]

Raspon znakova [a-z] odgovarat će svakom malom slovu u engleskoj abecedi. Na primjer, regularni izraz /[a-z]/ odgovarat će svakom malom slovu u tekstualnom nizu.

[0-9]

Raspon znakova [0-9] će odgovarati bilo kojoj znamenki od 0 do 9 u tekstualnom nizu. Na primjer, regularni izraz /[0-9]/ odgovarat će bilo kojem jednocifrenom broju.

[A-Z-z]

Klasa karaktera [A-Za-z] će odgovarati bilo kojem velikom ili malom slovu u engleskoj abecedi. Na primjer, regularni izraz /[A-Za-z]/ odgovarat će bilo kojem slovu u tekstualnom nizu.

Klase i rasponi znakova omogućuju nam definiranje specifičnih skupova znakova za traženje u regularnom izrazu. Upotrijebite ih kako biste svoja pretraživanja prilagodili svojim posebnim potrebama i ograničenjima.

Kvantifikatori i ponavljanja

Kvantifikatori i ponavljanja ključni su elementi u regularnim izrazima koji nam omogućuju da odredimo broj pojavljivanja elementa u tekstualnom nizu. Pogledajmo neke od najčešćih kvantifikatora u JavaScriptu:

* (zvjezdica)

Kvantifikator * označava da se prethodni element može pojaviti nula ili više puta. Na primjer, regularni izraz /a*/ odgovarat će nula ili više 'a' u tekstualnom nizu.

+ (više)

Kvantifikator + označava da se prethodni element treba pojaviti jednom ili više puta. Na primjer, regularni izraz /a+/ odgovarat će jednom ili više "a" u tekstualnom nizu.

  Strukture podataka i algoritmi: cjeloviti vodič za programere

? (pitanje)

Kvantifikator ? označava da se prethodni element može pojaviti nula ili jednom. Na primjer, regularni izraz /colou?r/ odgovarat će i "boja" i "boja".

{n} (točno n puta)

Kvantifikator {n} označava da se prethodni element mora pojaviti točno n puta. Na primjer, regularni izraz /a{3}/ odgovarat će točno tri "a" u tekstualnom nizu.

{n,} (najmanje n puta)

Kvantifikator {n,} označava da se prethodni element mora pojaviti najmanje n puta. Na primjer, regularni izraz /a{2,}/ odgovarat će dva ili više 'a' u tekstualnom nizu.

{n,m}

Kvantifikator {n,m} označava da se prethodni element mora pojaviti najmanje n puta i najviše m puta. Na primjer, regularni izraz /a{2,4}/ odgovarat će dva, tri ili četiri "a" u tekstualnom nizu.

Ovo je samo nekoliko primjera kvantifikatora koje možete koristiti u svojim regularnim izrazima. Kvantifikatori nam omogućuju da odredimo obrasce ponavljanja u tekstualnim pretragama i manipulacijama, što olakšava izdvajanje specifičnih informacija iz tekstualnih nizova.

Sidra i granice riječi

Sidra i granice riječi elementi su koji nam omogućuju da označimo položaj podudaranja unutar tekstualnog niza. Ovi elementi su posebno korisni kada želimo pretraživati ​​cijele riječi ili provjeriti nalazi li se podudaranje na početku ili kraju retka. Pogledajmo neke primjere sidra i granica riječi:

\b (granica riječi)

Ograničenje riječi \b odgovara granici između alfanumeričkog znaka i nealfanumeričkog znaka. Na primjer, regularni izraz /\bjavascript\b/ će odgovarati samo riječi "javascript" kao cjelovita riječ, ne podudarajući se s dužim riječima koje sadrže "javascript" kao dio.

^ (početak retka)

Lik ^ Koristi se za označavanje početka retka u tekstualnom nizu. Na primjer, regularni izraz /^hola/ odgovarat će riječi "zdravo" na početku svakog retka u tekstualnom nizu.

$ (kraj retka)

Lik $ Koristi se za označavanje kraja retka u tekstualnom nizu. Na primjer, regularni izraz /mundo$/ odgovarat će riječi "svijet" na kraju svakog retka u tekstualnom nizu.

\A (početak teksta)

Lik \A Koristi se za označavanje početka cijelog teksta u tekstualnom nizu, a ne samo početka retka. Na primjer, regularni izraz /^\AHola/ odgovarat će riječi “Zdravo” na početku cijelog teksta.

\Z (kraj teksta)

Lik \Z koristi se za označavanje kraja cijelog teksta u tekstualnom nizu, a ne samo kraja retka. Na primjer, regularni izraz /Mundo\Z/ odgovarat će riječi "Svijet" na kraju cijelog teksta.

Sidra i granice riječi omogućuju nam traženje podudaranja na određenim mjestima unutar tekstualnog niza, što može biti korisno u situacijama u kojima želimo osigurati da je podudaranje na određenoj poziciji.

Grupe i hvatanja

Grupe i hvatanja su napredni elementi u regularnim izrazima koji nam omogućuju grupiranje podizražaja i njihovo hvatanje za kasniju upotrebu. Pogledajmo kako funkcioniraju grupe i snimanja:

( ) (zagrade)

Zagrade su Koriste se za grupiranje podizraze u regularnom izrazu. Na primjer, regularni izraz /(d{2})-(d{2})-(d{4})/ se koristi se za traženje datuma u formatu "dd-mm-gggg. Grupe ( ) Omogućuju nam odvojeno bilježenje vrijednosti dana, mjeseca i godine.

\1, \2, \3 (reference grupe)

Reference grupe koriste se za upućivanje na prethodno snimljene grupe u regularnom izrazu. Na primjer, regularni izraz /(\w+) \1/ odgovarat će bilo kojoj riječi iza koje slijedi ponovljena ista riječ. Na primjer, "zdravo zdravo", "svijet svijeta" itd.

?: (grupa koja ne hvata)

Simbol ?: Koristi se za stvaranje grupa koje ne mogu uhvatiti. Ove se grupe koriste kada želimo grupirati podizraze, ali ne želimo uhvatiti rezultat. Na primjer, regularni izraz /https?:\/\/(?:www\.)?google\.com/ odgovarat će i “http://www.google.com” i “https://google.com”, ali će uhvatiti samo relevantni dio URL-a.

Grupe i snimanja nam omogućuju strukturiranje i organiziranje regularnih izraza na učinkovitiji i čitljiviji način. Također pružaju mogućnost snimanja određenih vrijednosti za kasniju upotrebu u našim aplikacijama.

Korisne metode za rad s regularnim izrazima

JavaScript pruža nekoliko korisnih metoda za rad s regularnim izrazima. Ove nam metode omogućuju izvođenje uobičajenih operacija kao što su pretraživanje, zamjena i dijeljenje tekstualnih nizova pomoću regularnih izraza. Pogledajmo neke od ovih metoda:

odgovara()

Metoda match() Koristi se za pronalaženje svih podudaranja regularnog izraza u tekstualnom nizu i vraćanje niza s rezultatima. Na primjer:

const texto = "¡Hola, mundo!";
const regex = /o/g;
const coincidencias = texto.match(regex);
console.log(coincidencias); // ["o", "o"]

U ovom primjeru koristili smo metodu match() pronaći sva podudaranja regularnog izraza /o/g u tekstualnom nizu "Hello, world!" Metoda match() vraća niz sa svim pronađenim podudaranjima.

  Kako instalirati i konfigurirati Docker na Windowsima: Potpuni vodič

zamijeniti ()

Metoda replace() koristi se za zamjenu podudaranja regularnog izraza u tekstualnom nizu novom vrijednošću. Na primjer:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const nuevoTexto = texto.replace(regex, "amigo");
console.log(nuevoTexto); // "¡Hola, amigo!"

U ovom primjeru koristili smo metodu replace() za zamjenu podudaranja regularnog izraza /mundo/ u tekstualnom nizu "Hello, world!" za riječ "prijatelj". Metoda replace() vraća novi tekstualni niz s izvršenim zamjenama.

podjela()

Metoda split() koristi se za dijeljenje tekstualnog niza u niz podnizova koristeći regularni izraz kao separator. Na primjer:

const texto = "Hola,mundo,amigo";
const regex = /,/g;
const subcadenas = texto.split(regex);
console.log(subcadenas); // ["Hola", "mundo", "amigo"]

U ovom primjeru koristili smo metodu split() da podijelite tekstualni niz "Hello,world,friend" u niz podnizova koristeći regularni izraz /,/g kao separator. Metoda split() vraća niz s rezultirajućim podnizovima.

test()

Metoda test() Koristi se za provjeru ima li regularni izraz podudaranja u tekstualnom nizu. Metoda se vraća true ako postoji podudaranje i false inače. Na primjer:

const texto = "Hola, mundo!";
const regex = /mundo/;
const resultado = regex.test(texto);
console.log(resultado); // true

U ovom primjeru koristili smo metodu test() provjeriti je li regularni izraz /mundo/ ima podudaranja u tekstualnom nizu "Hello, world!". Metoda test() vratiti true jer postoji slučajnost.

Ovo su samo neke od najčešćih metoda za rad s regularnim izrazima u JavaScriptu. Svaka od ovih metoda ima svoju svrhu i može se koristiti prema vašim specifičnim potrebama. Eksperimentirajte s njima i otkrijte kako vam mogu olakšati i ubrzati rad s regularnim izrazima.

Često postavljana pitanja

Što su regularni izrazi u JavaScriptu? Regularni izrazi u JavaScriptu su obrasci pretraživanja koji se koriste za pronalaženje i manipuliranje tekstom u nizovima znakova.

Kako stvoriti regularne izraze u JavaScriptu? Regularni izrazi u JavaScriptu stvaraju se pomoću klase RegExp ili korištenjem doslovnog /patrón/.

Koja je razlika između modifikatora i oznaka u regularnim izrazima? Modifikatori se dodaju na kraj regularnog izraza i mijenjaju njegovo ponašanje. Zastavice se dodaju nakon druge kose crte kada se stvara regularni izraz pomoću klase RegExp.

Koja je razlika između metode match() i metoda test()? Metoda match() Koristi se za pronalaženje svih podudaranja regularnog izraza u tekstualnom nizu i vraća niz s rezultatima. Metoda test() Koristi se za provjeru ima li regularni izraz podudaranja u tekstualnom nizu i vraća li Booleovu vrijednost.

Kako mogu uhvatiti određene vrijednosti pomoću grupa u regularnom izrazu? Grupe ( ) u regularnom izrazu omogućuju vam da uhvatite određene podizraze. Zatim možete referencirati te grupe pomoću referenci \1, \2, Itd

Koje metode mogu koristiti za rad s regularnim izrazima u JavaScriptu? Neke korisne metode za rad s regularnim izrazima u JavaScriptu su match(), replace(), split() y test(). Svaka od ovih metoda ima svoju svrhu i može se koristiti prema vašim specifičnim potrebama.

Zaključak

Regularni izrazi su moćan alat za rad s tekstom u JavaScriptu. Razumijevanje osnova , sintakse i naprednih tehnika regularnih izraza omogućit će vam učinkovito i točno pretraživanje, zamjenu i manipuliranje tekstualnim nizovima. Od osnovnog podudaranja do korištenja modifikatora, grupa i drugih korisnih metoda, naučili ste kako izvući maksimum iz regularnih izraza u svojim JavaScript projektima.

Ne zaboravite vježbati i eksperimentirati s različitim obrascima i slučajevima kako biste ojačali svoje razumijevanje i poznavanje regularnih izraza. Nemojte se ustručavati koristiti regularne izraze kako biste poboljšali učinkovitost i kvalitetu svog koda!