Dobrodošli v tem popolnem vodniku po regularnih izrazih v JavaScriptu! V tem članku bomo podrobno raziskali, kaj so regularni izrazi, kako se uporabljajo v JavaScriptu in kako vam lahko pomagajo poenostaviti in optimizirati kodo. Od osnov do praktičnih primerov bomo pokrili vse, kar morate vedeti, da začnete kar najbolje izkoriščati regularne izraze v svojih projektih JavaScript. Pa začnimo!
Uvod v regularne izraze
Regularni izrazi so iskalni vzorci, ki se uporabljajo za iskanje in urejanje besedila v znakovnih nizih. Sestavljeni so iz kombinacije dobesednih znakov in metaznakov, ki določajo posebna pravila za iskanje ujemanj v besedilu. Ta pravila lahko vključujejo iskanje določenih znakov, obsegov znakov, ponovitev, alternativ in še veliko več.
V JavaScriptu so regularni izrazi ustvarjeni z uporabo razreda RegExp
ali z uporabo dobesednega /patrón/
. Vzorec je sam regularni izraz, ki je zaprt med poševnico. Poglejmo preprost primer:
const regex = /hola/;
V tem primeru smo ustvarili regularni izraz, ki bo v besedilu iskal niz »zdravo«. Zdaj, ko že osnovno razumemo, kaj so regularni izrazi, raziščimo nekaj ključnih konceptov in naprednih tehnik za delo z njimi v JavaScriptu.
Osnovna sintaksa regularnih izrazov
Regularni izrazi v JavaScriptu so sestavljeni iz več ključnih elementov, ki nam omogočajo definiranje bolj zapletenih iskalnih vzorcev. Ti elementi vključujejo dobesedne znake, metaznake, razrede znakov, kvantifikatorje, sidra in drugo. Oglejmo si nekaj primerov teh elementov:
Dobesedni znaki
Dobesedni znaki so tisti, ki se iščejo, ko se pojavijo v besedilu. Na primer regularni izraz /hola/
bo poiskal zaporedje znakov "zdravo" v besedilnem nizu. Pomembno je vedeti, da regularni izrazi razlikujejo med velikimi in malimi črkami, torej /hola/
ne bo ujemalo z "Hello" ali "HELLO".
Metaznaki
Metaznaki so posebni znaki, ki imajo poseben pomen v regularnih izrazih. Na primer metaznak .
Uporablja se za predstavitev katerega koli znaka razen nove vrstice. Drug pogost metaznak je ^
, ki se uporablja za označevanje začetka besedilnega niza. Na primer regularni izraz /^hola/
se bo ujemal s katerim koli besedilnim nizom, ki se začne z "zdravo".
Razredi znakov
Razredi znakov se uporabljajo za iskanje katerega koli znaka v določenem nizu. Na primer regularni izraz /[aeiou]/
se bo ujemal s katerim koli samoglasnikom v besedilnem nizu. V znakovnih razredih je mogoče uporabiti tudi obsege znakov. Na primer regularni izraz /[a-z]/
se bo ujemala s katero koli malo črko.
Kvantifikatorji
Kvantifikatorji se uporabljajo za določitev števila pojavitev elementa v regularnem izrazu. Na primer kvantifikator *
označuje, da se prejšnji element lahko pojavi nič ali večkrat. Kvantifikator +
označuje, da se mora prejšnji element pojaviti enkrat ali večkrat. Na primer regularni izraz /a+/
se bo ujemal z enim ali več "a"-ji v besedilnem nizu.
Sidra
Sidra se uporabljajo za označevanje položaja ujemanja v besedilnem nizu. Na primer, sidro \b
se ujema z besedno mejo. Na primer regularni izraz /bholab/
se bo ujemala samo z besedo "zdravo" kot a polna beseda, ne da bi se ujemali z daljšimi besedami, ki kot del vsebujejo »zdravo«.
To je le nekaj primerov osnovne sintakse regularnih izrazov v JavaScriptu. Kot Pojdimo naprej v tem članku, bomo raziskovali naprednejše koncepte in tehnike za delo z regularnimi izrazi v JavaScriptu.
Osnovno iskanje ujemanja
Ena najpogostejših operacij, ki se izvajajo z regularnimi izrazi, je iskanje ujemanj v besedilnem nizu. V JavaScriptu lahko uporabimo metodo search()
najti prvo ujemanje regularnega izraza v besedilnem nizu. Poglejmo primer:
const texto = "¡Hola, mundo!"; const regex = /mundo/; const indice = texto.search(regex); console.log(indice); // 7
V tem primeru smo uporabili metodo search()
da poiščete prvo ujemanje regularnega izraza /mundo/
v besedilnem nizu "Pozdravljen, svet!" Metoda search()
vrne indeks prvega najdenega ujemanja ali -1, če ujemanje ni najdeno.
Poleg metode search()
, JavaScript ponuja tudi druge uporabne metode za delo z regularnimi izrazi, kot je npr match()
, replace()
, split()
y test()
. Vsaka od teh metod ima svoj namen in se lahko uporablja glede na vaše posebne potrebe.
Uporaba modifikatorjev in zastavic
V JavaScriptu lahko regularni izrazi vsebujejo modifikatorje in zastavice, ki omogočajo bolj prilagodljiva in prilagojena iskanja. Modifikatorji so dodani na konec regularnega izraza in spremenijo njegovo vedenje. Nekateri najpogostejši modifikatorji so:
jaz (neobčutljiv)
Modifikator i
se uporablja za izvajanje iskanja brez razlikovanja med velikimi in malimi črkami. Na primer regularni izraz /hola/i
se bo ujemalo tako z "hello" kot "Hello" ali "HELLO".
g (globalno)
Modifikator g
Uporablja se za izvedbo globalnega iskanja po celotnem besedilnem nizu, namesto da bi se ustavil pri prvem najdenem ujemanju. Na primer regularni izraz /a+/g
se bo ujemal z vsemi pojavitvami enega ali več "a" v besedilnem nizu.
m (večvrstični)
Modifikator m
Uporablja se za iskanje po več vrsticah v besedilnem nizu. Na primer regularni izraz /^hola/m
se bo ujemal z besedo "zdravo" na začetku vsake vrstice v besedilnem nizu.
Poleg modifikatorjev JavaScript omogoča tudi uporabo zastavic v regularnih izrazih. Zastavice se dodajo za drugo poševnico pri ustvarjanju regularnega izraza z uporabo razreda RegExp
. Nekatere najpogostejše zastave so:
jaz (neobčutljiv)
Tako kot modifikator i
, zastava i
izvede iskanje, ki ne razlikuje med velikimi in malimi črkami. Na primer regularni izraz new RegExp("hola", "i")
se bo ujemalo tako z "hello" kot "Hello" ali "HELLO".
g (globalno)
Tako kot modifikator g
, zastava g
izvede globalno iskanje po celotnem besedilnem nizu. Na primer regularni izraz new RegExp("a+", "g")
se bo ujemal z vsemi pojavitvami enega ali več "a" v besedilnem nizu.
m (večvrstični)
Tako kot modifikator m
, zastava m
izvede iskanje v več vrsticah znotraj besedilnega niza. Na primer regularni izraz new RegExp("^hola", "m")
se bo ujemal z besedo "zdravo" na začetku vsake vrstice v besedilnem nizu.
Uporaba modifikatorjev in zastavic v regularnih izrazih JavaScript je lahko zelo koristna za prilagajanje iskanja različnim posebnim primerom in zahtevam. Eksperimentirajte z njimi in ugotovite, kako jih lahko kar najbolje izkoristite funkcionalnosti v vaši kodi.
Metaznaki in posebni znaki
Metaznaki in posebni znaki so ključni elementi v regularnih izrazih, ki nam omogočajo izvajanje zmogljivejših in prilagodljivejših iskanj. Omenili smo že nekaj metaznakov, kot npr .
y ^
, vendar jih lahko uporabite v regularnih izrazih še veliko več. Oglejmo si nekaj najpogostejših metaznakov in posebnih znakov:
. (točka)
Metaznak .
Uporablja se za predstavitev katerega koli znaka razen nove vrstice. Na primer regularni izraz /h.t/
se bo ujemal s "hat", "hot", "hit" in katero koli drugo besedo s tremi črkami, ki se začne s "h" in konča s "t."
\ (poševnica nazaj)
Poševnica nazaj se uporablja za ubežanje posebnih znakov v regularnem izrazu. Na primer, če želite poiskati dobesedno piko v besedilnem nizu, jo morate ubežati s poševnico nazaj. Regularni izraz /www\.google\.com/
se bo ujemal z besedilnim nizom »www.google.com«.
\d (števka)
Metaznak \d
se uporablja za iskanje katere koli števke od 0 do 9. Na primer regularni izraz /\d+/
se bo ujemal s katero koli eno ali večmestno številko v besedilnem nizu.
\w (alfanumerični znak)
Metaznak \w
se uporablja za iskanje poljubnih alfanumeričnih znakov (velike in male črke, številke in podčrtaji). Na primer regularni izraz /\w+/
se bo ujemal s katero koli besedo z enim ali več alfanumeričnimi znaki v besedilnem nizu.
To je le nekaj primerov metaznakov in posebnih znakov, ki jih lahko uporabite v regularnih izrazih. Ko se boste bolje seznanili z regularnimi izrazi v JavaScriptu, boste odkrili široko paleto možnosti za izboljšanje vaših iskanj in besedilnih manipulacij.
Razredi in obsegi znakov
Razredi znakov so še en ključni element v regularnih izrazih, ki nam omogočajo iskanje katerega koli znaka v določenem nizu. V JavaScriptu lahko uporabljamo oklepaje []
da definirate razred znakov. Oglejmo si nekaj primerov znakovnih razredov in obsegov:
[aeiou]
Razred znakov [aeiou]
se bo ujemal s katerim koli samoglasnikom v besedilnem nizu. Na primer regularni izraz /[aeiou]/
se bo ujemal z "a", "e", "i", "o" ali "u" v besedilnem nizu.
[az]
Razpon znakov [a-z]
se bo ujemal s katero koli malo črko v angleški abecedi. Na primer regularni izraz /[a-z]/
se bo ujemal s katero koli malo črko v besedilnem nizu.
[0-9]
Razpon znakov [0-9]
se bo ujemal s katero koli števko od 0 do 9 v besedilnem nizu. Na primer regularni izraz /[0-9]/
se bo ujemalo s katero koli enomestno številko.
[A-Z-z]
Razred znakov [A-Za-z]
se bo ujemal s katero koli veliko ali malo črko v angleški abecedi. Na primer regularni izraz /[A-Za-z]/
se bo ujemal s katero koli črko v besedilnem nizu.
Razredi in obsegi znakov nam omogočajo, da definiramo posebne nize znakov za iskanje v regularnem izrazu. Uporabite jih, da svoja iskanja prilagodite svojim posebnim potrebam in omejitvam.
Kvantifikatorji in ponovitve
Kvantifikatorji in ponovitve so ključni elementi v regularnih izrazih, ki nam omogočajo, da določimo število pojavitev elementa v besedilnem nizu. Oglejmo si nekaj najpogostejših kvantifikatorjev v JavaScriptu:
* (zvezdica)
Kvantifikator *
označuje, da se prejšnji element lahko pojavi nič ali večkrat. Na primer regularni izraz /a*/
se bo ujemal z nič ali več 'a' v besedilnem nizu.
+ (več)
Kvantifikator +
označuje, da se mora prejšnji element pojaviti enkrat ali večkrat. Na primer regularni izraz /a+/
se bo ujemal z enim ali več "a"-ji v besedilnem nizu.
? (vprašanje)
Kvantifikator ?
označuje, da se lahko prejšnji element prikaže nič ali enkrat. Na primer regularni izraz /colou?r/
se bo ujemala z »barvo« in »barvo«.
{n} (točno n-krat)
Kvantifikator {n}
označuje, da se mora prejšnji element pojaviti točno n-krat. Na primer regularni izraz /a{3}/
se bo ujemal natanko s tremi "a"-ji v besedilnem nizu.
{n,} (vsaj n-krat)
Kvantifikator {n,}
označuje, da se mora prejšnji element pojaviti vsaj n-krat. Na primer regularni izraz /a{2,}/
se bo ujemal z dvema ali več 'a'-ji v besedilnem nizu.
{n,m}
Kvantifikator {n,m}
označuje, da se mora prejšnji element pojaviti vsaj n-krat in največ m-krat. Na primer regularni izraz /a{2,4}/
se bo ujemal z dvema, tremi ali štirimi "a" v besedilnem nizu.
To je le nekaj primerov kvantifikatorjev, ki jih lahko uporabite v svojih regularnih izrazih. Kvantifikatorji nam omogočajo, da določimo vzorce ponavljanja pri iskanju in manipulaciji besedila, kar olajša pridobivanje specifičnih informacij iz besedilnih nizov.
Sidra in besedne meje
Sidra in besedne meje so elementi, ki nam omogočajo, da označimo položaj ujemanja v besedilnem nizu. Ti elementi so še posebej uporabni, ko želimo iskati celotne besede ali se prepričati, ali je ujemanje na začetku ali koncu vrstice. Oglejmo si nekaj primerov sider in besednih mej:
\b (besedna meja)
Meja besed \b
se ujema z mejo med alfanumeričnim znakom in nealfanumeričnim znakom. Na primer regularni izraz /\bjavascript\b/
se bo ujemal samo z besedo »javascript« kot celotno besedo, ne pa tudi z daljšimi besedami, ki kot del vsebujejo »javascript«.
^ (začetek vrstice)
Znak ^
Uporablja se za označevanje začetka vrstice v besedilnem nizu. Na primer regularni izraz /^hola/
se bo ujemal z besedo "zdravo" na začetku vsake vrstice v besedilnem nizu.
$ (konec vrstice)
Znak $
Uporablja se za označevanje konca vrstice v besedilnem nizu. Na primer regularni izraz /mundo$/
se bo ujemal z besedo "svet" na koncu vsake vrstice v besedilnem nizu.
\A (začetek besedila)
Znak \A
Uporablja se za označevanje začetka vsega besedila v besedilnem nizu, ne le začetka vrstice. Na primer regularni izraz /^\AHola/
se bo ujemala z besedo »Pozdravljeni« na začetku celotnega besedila.
\Z (konec besedila)
Znak \Z
se uporablja za označevanje konca vsega besedila v besedilnem nizu, ne le konca vrstice. Na primer regularni izraz /Mundo\Z/
se bo ujemala z besedo "Svet" na koncu celotnega besedila.
Sidra in besedne meje nam omogočajo iskanje ujemanj na določenih lokacijah v besedilnem nizu, kar je lahko uporabno v primerih, ko želimo zagotoviti, da je ujemanje na določenem mestu.
Skupine in zajemi
Skupine in zajemi so napredni elementi v regularnih izrazih, ki nam omogočajo združevanje podizrazov in njihovo zajemanje za kasnejšo uporabo. Poglejmo, kako delujejo skupine in zajemi:
( ) (oklepaji)
Oklepaji so Uporabljajo se za združevanje podizrazov v regularnem izrazu. Na primer regularni izraz /(d{2})-(d{2})-(d{4})/
se uporablja za iskanje datuma v obliki "dd-mm-llll. Skupine ( )
Omogočajo nam, da ločeno zajamemo vrednosti dneva, meseca in leta.
\1, \2, \3 (sklice na skupine)
Sklici na skupine se uporabljajo za sklicevanje na predhodno zajete skupine v regularnem izrazu. Na primer regularni izraz /(\w+) \1/
se bo ujemal s katero koli besedo, ki ji sledi ponovljena ista beseda. Na primer "zdravo, zdravo", "svetovni svet" itd.
?: (skupina brez zajemanja)
Simbol ?:
Uporablja se za ustvarjanje skupin brez zajemanja. Te skupine se uporabljajo, ko želimo združiti podizraze, vendar ne želimo zajeti rezultata. Na primer regularni izraz /https?:\/\/(?:www\.)?google\.com/
se bo ujemal z »http://www.google.com« in »https://google.com«, vendar bo zajel le ustrezni del URL-ja.
Skupine in zajemi nam omogočajo strukturiranje in organiziranje naših regularnih izrazov na bolj učinkovit in berljiv način. Omogočajo nam tudi zajem specifičnih vrednosti za poznejšo analizo. uporabo v naših aplikacijah.
Uporabne metode za delo z regularnimi izrazi
JavaScript ponuja več uporabnih metod za delo z regularnimi izrazi. Te metode nam omogočajo izvajanje običajnih operacij, kot so iskanje, zamenjava in razdelitev besedilnih nizov z uporabo regularnih izrazov. Oglejmo si nekaj teh metod:
ujemanje()
Metoda match()
Uporablja se za iskanje vseh ujemanj regularnega izraza v besedilnem nizu in vrnitev matrike z rezultati. Na primer:
const texto = "¡Hola, mundo!"; const regex = /o/g; const coincidencias = texto.match(regex); console.log(coincidencias); // ["o", "o"]
V tem primeru smo uporabili metodo match()
da poiščete vsa ujemanja regularnega izraza /o/g
v besedilnem nizu "Pozdravljen, svet!" Metoda match()
vrne matriko z vsemi najdenimi ujemanji.
zamenjati ()
Metoda replace()
se uporablja za zamenjavo ujemanja regularnega izraza v besedilnem nizu z novo vrednostjo. Na primer:
const texto = "¡Hola, mundo!"; const regex = /mundo/; const nuevoTexto = texto.replace(regex, "amigo"); console.log(nuevoTexto); // "¡Hola, amigo!"
V tem primeru smo uporabili metodo replace()
za zamenjavo ujemanja regularnega izraza /mundo/
v besedilnem nizu "Pozdravljen, svet!" za besedo "prijatelj". Metoda replace()
vrne nov besedilni niz z opravljenimi zamenjavami.
razdeli ()
Metoda split()
se uporablja za razdelitev besedilnega niza v niz podnizov z uporabo regularnega izraza kot ločila. Na primer:
const texto = "Hola,mundo,amigo"; const regex = /,/g; const subcadenas = texto.split(regex); console.log(subcadenas); // ["Hola", "mundo", "amigo"]
V tem primeru smo uporabili metodo split()
za razdelitev besedilnega niza "Hello,world,friend" v niz podnizov z uporabo regularnega izraza /,/g
kot ločilo. Metoda split()
vrne matriko z nastalimi podnizi.
preizkus ()
Metoda test()
Uporablja se za preverjanje, ali ima regularni izraz ujemanja v besedilnem nizu. Metoda se vrača true
če obstaja ujemanje in false
drugače. Na primer:
const texto = "Hola, mundo!"; const regex = /mundo/; const resultado = regex.test(texto); console.log(resultado); // true
V tem primeru smo uporabili metodo test()
da preverite, ali regularni izraz /mundo/
ima ujemanja v besedilnem nizu "Hello, world!". Metoda test()
prinesi nazaj true
ker je naključje.
To je le nekaj najpogostejših metod za delo z regularnimi izrazi v JavaScriptu. Vsaka od teh metod ima svoj namen in se lahko uporablja glede na vaše posebne potrebe. Preizkusite z njimi in odkrijte, kako vam lahko olajšajo in pospešijo delo z regularnimi izrazi.
Pogosto zastavljena vprašanja
Kaj so regularni izrazi v JavaScriptu? Regularni izrazi v JavaScriptu so iskalni vzorci, ki se uporabljajo za iskanje in urejanje besedila v znakovnih nizih.
Kako ustvariti regularne izraze v JavaScriptu? Regularni izrazi v JavaScriptu so ustvarjeni z uporabo razreda RegExp
ali z uporabo dobesednega /patrón/
.
Kakšna je razlika med modifikatorji in zastavicami v regularnih izrazih? Modifikatorji so dodani na konec regularnega izraza in spremenijo njegovo vedenje. Zastavice se dodajo za drugo poševnico pri ustvarjanju regularnega izraza z uporabo razreda RegExp
.
Kakšna je razlika med metodo match()
in metoda test()
? Metoda match()
Uporablja se za iskanje vseh ujemanj regularnega izraza v besedilnem nizu in vrne matriko z rezultati. Metoda test()
Uporablja se za preverjanje, ali ima regularni izraz kakršna koli ujemanja v besedilnem nizu, in vrne logično vrednost.
Kako lahko zajamem določene vrednosti z uporabo skupin v regularnem izrazu? Skupine ( )
v regularnem izrazu vam omogočajo zajem specifičnih podizrazov. Nato se lahko sklicujete na te skupine z uporabo referenc \1
, \2
, Itd
Katere metode lahko uporabim za delo z regularnimi izrazi v JavaScriptu? Nekatere uporabne metode za delo z regularnimi izrazi v JavaScriptu so match()
, replace()
, split()
y test()
. Vsaka od teh metod ima svoj namen in se lahko uporablja glede na vaše posebne potrebe.
Zaključek
Regularni izrazi so zmogljivo orodje za delo z besedilom v JavaScriptu. Spoznajte osnove, vam bodo sintaksa in napredne tehnike regularnih izrazov omogočile učinkovito in natančno iskanje, zamenjavo in obdelavo besedilnih nizov. Od osnovnega ujemanja do uporabe uporabnih modifikatorjev, skupin in metod ste se naučili kar najbolje izkoristiti regularne izraze v svojih projektih JavaScript.
Ne pozabite vaditi in eksperimentirati z različnimi vzorci in primeri uporabe, da okrepite svoje razumevanje in poznavanje regularnih izrazov. Ne oklevajte in uporabite regularne izraze za izboljšanje učinkovitosti in kakovosti vaše kode!
Vsebina
- Uvod v regularne izraze
- Osnovna sintaksa regularnih izrazov
- Osnovno iskanje ujemanja
- Uporaba modifikatorjev in zastavic
- Metaznaki in posebni znaki
- Razredi in obsegi znakov
- Kvantifikatorji in ponovitve
- Sidra in besedne meje
- Skupine in zajemi
- Uporabne metode za delo z regularnimi izrazi
- Pogosto zastavljena vprašanja
- Zaključek