Reguliarūs reiškiniai „JavaScript“: įvadas

Paskutiniai pakeitimai: 5 lapkričio 2025
Reguliarūs reiškiniai „JavaScript“.

Sveiki atvykę į šį išsamų „JavaScript“ įprastų posakių vadovą! Šiame straipsnyje išsamiai išnagrinėsime, kas yra reguliarieji posakiai, kaip jie naudojami „JavaScript“ ir kaip jie gali padėti supaprastinti ir optimizuoti kodą. Nuo pagrindų iki praktinių pavyzdžių apžvelgsime viską, ką reikia žinoti, kad pradėtumėte maksimaliai išnaudoti reguliariąsias išraiškas savo „JavaScript“ projektuose. Taigi pradėkime!

Įvadas į reguliariąsias išraiškas

Reguliarūs posakiai yra paieškos šablonai, naudojami ieškant ir manipuliuojant tekstu simbolių eilutėse. Juos sudaro pažodinių simbolių ir metasimbolių derinys, apibrėžiantis konkrečias atitikmenų paieškos tekste taisykles. Šios taisyklės gali apimti konkrečių simbolių, simbolių diapazonų, pasikartojimų, alternatyvų ir daug daugiau paiešką.

„JavaScript“ įprastos išraiškos sukuriamos naudojant klasę RegExp arba naudojant pažodinį žodį /patrón/. Šablonas yra pati reguliarioji išraiška, kuri yra tarp pasvirųjų brūkšnių. Pažvelkime į paprastą pavyzdį:

const regex = /hola/;

 

Šiame pavyzdyje sukūrėme reguliariąją išraišką, kuri tekste ieškos eilutės „labas“. Dabar, kai jau turime pagrindinį supratimą apie tai, kas yra reguliarios išraiškos, panagrinėkime kai kurias pagrindines sąvokas ir pažangias darbo su jomis „JavaScript“ metodus.

Pagrindinė reguliariųjų išraiškų sintaksė

„JavaScript“ įprastos išraiškos sudarytos iš kelių pagrindinių elementų, leidžiančių apibrėžti sudėtingesnius paieškos modelius. Šie elementai apima pažodinius simbolius, metasimbolius, simbolių klases, skaitiklius, inkarus ir kt. Pažvelkime į keletą šių elementų pavyzdžių:

Pažodiniai personažai

Pažodiniai simboliai yra tie, kurių ieškoma taip, kaip jie pasirodo tekste. Pavyzdžiui, reguliarioji išraiška /hola/ teksto eilutėje ieškos simbolių sekos „labas“. Svarbu pažymėti, kad reguliariosiose išraiškose skiriamos didžiosios ir mažosios raidės, todėl /hola/ neatitiks „Labas“ arba „HELLO“.

Metacharakteriai

Metaženkliai yra specialūs simboliai, turintys ypatingą reikšmę reguliariosiose išraiškose. Pavyzdžiui, metasimbolis . Jis naudojamas bet kuriam simboliui, išskyrus naują eilutę, pavaizduoti. Kitas įprastas metasimbolis yra ^, kuris naudojamas teksto eilutės pradžiai nurodyti. Pavyzdžiui, reguliarioji išraiška /^hola/ atitiks bet kurią teksto eilutę, prasidedančią „labas“.

Charakterių klasės

Simbolių klasės naudojamos ieškant bet kurio simbolio konkrečiame rinkinyje. Pavyzdžiui, reguliarioji išraiška /[aeiou]/ atitiks bet kurią teksto eilutės balsę. Taip pat simbolių klasėse galima naudoti simbolių diapazonus. Pavyzdžiui, reguliarioji išraiška /[a-z]/ atitiks bet kurią mažąją raidę.

Kvantifikatoriai

Kvantifikatoriai naudojami norint nurodyti elemento pasikartojimų skaičių reguliariojoje išraiškoje. Pavyzdžiui, kvantorius * rodo, kad ankstesnis elementas gali būti rodomas nulį arba daugiau kartų. Kiekintojas + rodo, kad ankstesnis elementas turi būti rodomas vieną ar kelis kartus. Pavyzdžiui, reguliarioji išraiška /a+/ atitiks vieną ar daugiau „a“ teksto eilutėje.

Inkarai

Inkarai naudojami atitikties vietai teksto eilutėje nurodyti. Pavyzdžiui, inkaras \b atitinka žodžio ribą. Pavyzdžiui, reguliarioji išraiška /bholab/ atitiks tik žodį „labas“ kaip a pilnas žodis, neatitikdami ilgesnių žodžių, kurių dalis yra „labas“.

Tai tik keli pagrindinės reguliariųjų išraiškų sintaksės „JavaScript“ kalboje pavyzdžiai. Skaitydami šį straipsnį , nagrinėsime sudėtingesnes sąvokas ir metodus, kaip dirbti su reguliariosiomis išraiškomis „JavaScript“ kalboje.

Pagrindinė atitikmenų paieška

Viena iš dažniausiai atliekamų operacijų su reguliariosiomis išraiškomis yra atitikmenų paieška teksto eilutėje. „JavaScript“ galime naudoti metodą search() norėdami rasti pirmąją reguliariosios išraiškos atitiktį teksto eilutėje. Pažiūrėkime pavyzdį:

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

Šiame pavyzdyje mes naudojome metodą search() norėdami rasti pirmąją reguliariosios išraiškos atitiktį /mundo/ teksto eilutėje "Sveikas, pasauli!" Metodas search() grąžina pirmosios rastos atitikties indeksą arba -1, jei atitikmens nerasta.

Be metodo search(), „JavaScript“ taip pat suteikia kitų naudingų metodų dirbant su reguliariosiomis išraiškomis, pvz match(), replace(), split() y test(). Kiekvienas iš šių metodų turi savo paskirtį ir gali būti naudojamas pagal jūsų konkrečius poreikius.

Modifikatorių ir vėliavėlių naudojimas

„JavaScript“ įprastose išraiškose gali būti modifikatorių ir vėliavėlių, kurios leidžia atlikti lankstesnes ir pritaikytas paieškas. Modifikatoriai pridedami prie reguliaraus reiškinio pabaigos ir keičia jo elgesį. Kai kurie dažniausiai naudojami modifikatoriai yra šie:

aš (nejautrus)

Modifikatorius i naudojamas paieškai neskiriant didžiųjų ir mažųjų raidžių. Pavyzdžiui, reguliarioji išraiška /hola/i atitiks ir „labas“, ir „labas“ arba „HELLO“.

g (visuotinis)

Modifikatorius g Jis naudojamas visuotinei paieškai visoje teksto eilutėje atlikti, o ne sustoti ties pirmąja rasta atitiktimi. Pavyzdžiui, reguliarioji išraiška /a+/g atitiks visus vieno ar kelių „a“ atvejus teksto eilutėje.

  Priklausomybių valdymas: išsamus projektų ir produktų vadovas

m (kelių eilučių)

Modifikatorius m Jis naudojamas ieškant keliose teksto eilutės eilutėse. Pavyzdžiui, reguliarioji išraiška /^hola/m atitiks žodį „labas“ kiekvienos teksto eilutės eilutės pradžioje.

Be modifikatorių, JavaScript taip pat leidžia naudoti vėliavėles įprastose išraiškose. Kuriant reguliarųjį posakį naudojant klasę, žymos pridedamos po antrojo pasvirojo brūkšnio RegExp. Kai kurios iš labiausiai paplitusių vėliavų yra:

aš (nejautrus)

Kaip ir modifikatorius i, vėliava i atlieka paiešką be didžiųjų ir mažųjų raidžių. Pavyzdžiui, reguliarioji išraiška new RegExp("hola", "i") atitiks ir „labas“, ir „labas“ arba „HELLO“.

g (visuotinis)

Kaip ir modifikatorius g, vėliava g atlieka visuotinę paiešką visoje teksto eilutėje. Pavyzdžiui, reguliarioji išraiška new RegExp("a+", "g") atitiks visus vieno ar kelių „a“ atvejus teksto eilutėje.

m (kelių eilučių)

Kaip ir modifikatorius m, vėliava m atlieka paiešką keliose teksto eilutės eilutėse. Pavyzdžiui, reguliarioji išraiška new RegExp("^hola", "m") atitiks žodį „labas“ kiekvienos teksto eilutės eilutės pradžioje.

Modifikatorių ir vėliavėlių naudojimas „JavaScript“ reguliariosiose išraiškose gali būti labai naudingas pritaikant paieškas skirtingiems atvejams ir konkretiems reikalavimams. Eksperimentuokite su jais ir atraskite, kaip galite kuo geriau išnaudoti šias funkcijas savo kode.

Metasimboliai ir specialieji simboliai

Metasimboliai ir specialieji simboliai yra pagrindiniai įprastų posakių elementai, leidžiantys atlikti galingesnes ir lankstesnes paieškas. Jau minėjome kai kuriuos metasimbolius, pvz . y ^, bet yra daug daugiau, kurias galite naudoti įprastose išraiškose. Pažvelkime į kai kuriuos dažniausiai pasitaikančius metasimbolius ir specialiuosius simbolius:

. (taškas)

Metacharakteris . Jis naudojamas bet kuriam simboliui, išskyrus naują eilutę, pavaizduoti. Pavyzdžiui, reguliarioji išraiška /h.t/ atitiks „skrybėlę“, „karštą“, „pataikymą“ ir bet kurį kitą trijų raidžių žodį, kuris prasideda „h“ ir baigiasi „t“.

\ (pasvirasis brūkšnys)

Pasvirasis brūkšnys naudojamas norint išvengti specialiųjų simbolių reguliariojoje išraiškoje. Pavyzdžiui, jei norite ieškoti pažodinio taško teksto eilutėje, turite jį pabėgti naudodami pasvirąjį brūkšnį. Reguliari išraiška /www\.google\.com/ atitiks teksto eilutę „www.google.com“.

\d (skaitmuo)

Metacharakteris \d naudojamas ieškant bet kurio skaitmens nuo 0 iki 9. Pavyzdžiui, reguliarioji išraiška /\d+/ atitiks bet kurį vieną ar daugiau skaitmenų teksto eilutėje.

\w (raidinis ir skaitmeninis simbolis)

Metacharakteris \w naudojamas ieškant bet kokių raidinių ir skaitmeninių simbolių (didžiųjų ir mažųjų raidžių, skaitmenų ir apatinių brūkšnių). Pavyzdžiui, reguliarioji išraiška /\w+/ atitiks bet kurį žodį, sudarytą iš vieno ar daugiau raidinių ir skaitinių simbolių teksto eilutėje.

Tai tik keli metasimbolių ir specialiųjų simbolių, kuriuos galite naudoti įprastose išraiškose, pavyzdžiai. Kai labiau susipažinsite su įprastomis „JavaScript“ išraiškomis, atrasite daug įvairių paieškų ir teksto manipuliavimo parinkčių.

Simbolių klasės ir diapazonai

Simbolių klasės yra dar vienas pagrindinis reguliariųjų posakių elementas, leidžiantis ieškoti bet kurio simbolio konkrečiame rinkinyje. „JavaScript“ programoje galime naudoti skliaustus [] apibrėžti simbolių klasę. Pažvelkime į keletą simbolių klasių ir diapazonų pavyzdžių:

[aeiou]

Personažo klasė [aeiou] atitiks bet kurią teksto eilutės balsę. Pavyzdžiui, reguliarioji išraiška /[aeiou]/ atitiks "a", "e", "i", "o" arba "u" teksto eilutėje.

[az]

Simbolių diapazonas [a-z] atitiks bet kurią mažąją anglų abėcėlės raidę. Pavyzdžiui, reguliarioji išraiška /[a-z]/ atitiks bet kurią mažąją raidę teksto eilutėje.

[0-9]

Simbolių diapazonas [0-9] atitiks bet kurį teksto eilutės skaitmenį nuo 0 iki 9. Pavyzdžiui, reguliarioji išraiška /[0-9]/ atitiks bet kurį vienženklį skaičių.

[A-Z-z]

Personažo klasė [A-Za-z] atitiks bet kurią didžiąją arba mažąją anglų abėcėlės raidę. Pavyzdžiui, reguliarioji išraiška /[A-Za-z]/ atitiks bet kurią teksto eilutės raidę.

Simbolių klasės ir diapazonai leidžia apibrėžti konkrečius simbolių rinkinius, kurių reikia ieškoti reguliariojoje išraiškoje. Naudokite juos, kad pritaikytumėte paieškas pagal savo poreikius ir apribojimus.

Kiekiatoriai ir pakartojimai

Kvantifikatoriai ir pasikartojimai yra pagrindiniai reguliariųjų reiškinių elementai, leidžiantys nurodyti elemento pasikartojimų skaičių teksto eilutėje. Pažvelkime į kai kuriuos dažniausiai naudojamus „JavaScript“ kvantifikatorius:

* (žvaigždutė)

Kiekybinis rodiklis * rodo, kad ankstesnis elementas gali būti rodomas nulį arba daugiau kartų. Pavyzdžiui, reguliarioji išraiška /a*/ atitiks nulį ar daugiau „a“ teksto eilutėje.

  Išsamus nuolatinių XSS pažeidžiamumų tyrimas

+ (daugiau)

Kiekybinis rodiklis + rodo, kad ankstesnis elementas turi būti rodomas vieną ar kelis kartus. Pavyzdžiui, reguliarioji išraiška /a+/ atitiks vieną ar daugiau „a“ teksto eilutėje.

? (klausimas)

Kiekybinis rodiklis ? rodo, kad ankstesnis elementas gali pasirodyti nulis arba vieną kartą. Pavyzdžiui, reguliarioji išraiška /colou?r/ atitiks ir „spalvą“, ir „spalvą“.

{n} (tiksliai n kartų)

Kiekybinis rodiklis {n} rodo, kad ankstesnis elementas turi pasirodyti lygiai n kartų. Pavyzdžiui, reguliarioji išraiška /a{3}/ atitiks tiksliai tris "a" teksto eilutėje.

{n,} (bent n kartų)

Kiekybinis rodiklis {n,} rodo, kad ankstesnis elementas turi pasirodyti bent n kartų. Pavyzdžiui, reguliarioji išraiška /a{2,}/ atitiks du ar daugiau „a“ teksto eilutėje.

{n,m}

Kiekybinis rodiklis {n,m} rodo, kad ankstesnis elementas turi pasirodyti bent n kartų ir daugiausia m kartų. Pavyzdžiui, reguliarioji išraiška /a{2,4}/ teksto eilutėje atitiks du, tris arba keturis „a“.

Tai tik keli kvantiklių, kuriuos galite naudoti įprastose išraiškose, pavyzdžiai. Kvantifikatoriai leidžia nurodyti teksto paieškų ir manipuliacijų pasikartojimo modelius, todėl lengviau išgauti konkrečią informaciją iš teksto eilučių.

Inkarai ir žodžių ribos

Inkarai ir žodžių ribos yra elementai, leidžiantys nurodyti atitikmens vietą teksto eilutėje. Šie elementai ypač naudingi, kai norime ieškoti ištisų žodžių arba įsitikinti, kad atitiktis yra eilutės pradžioje arba pabaigoje. Pažvelkime į keletą inkarų ir žodžių ribų pavyzdžių:

\b (žodžio riba)

Žodžių riba \b atitinka ribą tarp raidinio ir skaitmeninio simbolio. Pavyzdžiui, reguliarioji išraiška /\bjavascript\b/ atitiks tik žodį „javascript“ kaip užbaigtą žodį, o ne ilgesnius žodžius, kurių dalis yra „javascript“.

^ (eilutės pradžia)

Charakteris ^ Jis naudojamas teksto eilutės eilutės pradžiai nurodyti. Pavyzdžiui, reguliarioji išraiška /^hola/ atitiks žodį „labas“ kiekvienos teksto eilutės eilutės pradžioje.

$ (eilutės pabaiga)

Charakteris $ Jis naudojamas teksto eilutės eilutės pabaigai nurodyti. Pavyzdžiui, reguliarioji išraiška /mundo$/ atitiks žodį „pasaulis“ kiekvienos teksto eilutės eilutės pabaigoje.

\A (teksto pradžia)

Charakteris \A Jis naudojamas viso teksto eilutėje, o ne tik eilutės pradžiai nurodyti. Pavyzdžiui, reguliarioji išraiška /^\AHola/ atitiks žodį „Labas“ viso teksto pradžioje.

\Z (teksto pabaiga)

Charakteris \Z naudojamas viso teksto, esančio teksto eilutėje, pabaigai nurodyti, o ne tik eilutės pabaigai. Pavyzdžiui, reguliarioji išraiška /Mundo\Z/ viso teksto pabaigoje atitiks žodį „Pasaulis“.

Inkarai ir žodžių ribos leidžia ieškoti atitikmenų konkrečiose teksto eilutės vietose, o tai gali būti naudinga tais atvejais, kai norime užtikrinti, kad atitikmuo būtų konkrečioje vietoje.

Grupės ir užfiksuoti

Grupės ir fiksavimas yra išplėstiniai įprastų posakių elementai, leidžiantys sugrupuoti posakius ir užfiksuoti juos vėlesniam naudojimui. Pažiūrėkime, kaip veikia grupės ir fiksavimas:

( ) (skliausteliai)

Skliausteliuose yra Jie naudojasi grupavimui posakių reguliariojoje išraiškoje. Pavyzdžiui, reguliarioji išraiška /(d{2})-(d{2})-(d{4})/ se naudojamas ieškant pasimatymo formatu "dd-mm-yyyy. Grupės ( ) Jie leidžia mums atskirai užfiksuoti dienos, mėnesio ir metų reikšmes.

\1, \2, \3 (grupės nuorodos)

Grupės nuorodos naudojamos anksčiau užfiksuotoms grupėms įprastoje išraiškoje nurodyti. Pavyzdžiui, reguliarioji išraiška /(\w+) \1/ atitiks bet kurį žodį, po kurio bus kartojamas tas pats žodis. Pavyzdžiui, „labas labas“, „pasaulio pasaulis“ ir kt.

?: (neužfiksuojanti grupė)

Simbolis ?: Jis naudojamas nefiksuojančioms grupėms kurti. Šios grupės naudojamos, kai norime sugrupuoti posakius, bet nenorime užfiksuoti rezultato. Pavyzdžiui, reguliarioji išraiška /https?:\/\/(?:www\.)?google\.com/ atitiks ir „http://www.google.com“, ir „https://google.com“, bet užfiksuos tik atitinkamą URL dalį.

Grupės ir fiksavimai leidžia mums efektyviau ir lengviau skaitomai struktūrizuoti ir tvarkyti reguliariąsias išraiškas. Jie taip pat suteikia galimybę užfiksuoti konkrečias reikšmes, kad vėliau jas būtų galima naudoti mūsų programose.

Naudingi metodai dirbant su reguliariosiomis išraiškomis

„JavaScript“ suteikia keletą naudingų metodų, kaip dirbti su reguliariosiomis išraiškomis. Šie metodai leidžia atlikti įprastas operacijas, tokias kaip teksto eilučių paieška, keitimas ir skaidymas naudojant reguliariąsias išraiškas. Pažvelkime į kai kuriuos iš šių metodų:

atitikimas ()

Metodas match() Jis naudojamas norint rasti visas reguliariosios išraiškos atitikmenis teksto eilutėje ir grąžinti masyvą su rezultatais. Pavyzdžiui:

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

Šiame pavyzdyje mes naudojome metodą match() norėdami rasti visas reguliariosios išraiškos atitikmenis /o/g teksto eilutėje "Sveikas, pasauli!" Metodas match() grąžina masyvą su visomis rastomis atitiktimis.

  SOLID programavimo srityje: išsamus vadovas su pavyzdžiais ir praktiniais patarimais

pakeisti ()

Metodas replace() naudojamas norint pakeisti reguliariosios išraiškos atitikmenis teksto eilutėje nauja reikšme. Pavyzdžiui:

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

Šiame pavyzdyje mes naudojome metodą replace() pakeisti reguliariosios išraiškos atitiktį /mundo/ teksto eilutėje "Sveikas, pasauli!" už žodį „draugas“. Metodas replace() grąžina naują teksto eilutę su atliktais pakeitimais.

padalyti ()

Metodas split() naudojamas padalyti teksto eilutę į eilučių masyvą naudojant reguliariąją išraišką kaip skyriklį. Pavyzdžiui:

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

Šiame pavyzdyje mes naudojome metodą split() suskaidyti teksto eilutę "Labas, pasaulis, draugas" į eilučių masyvą naudojant reguliariąją išraišką /,/g kaip separatorius. Metodas split() grąžina masyvą su gautomis poeilėmis.

testas ()

Metodas test() Jis naudojamas norint patikrinti, ar reguliarioji išraiška turi atitikties teksto eilutėje. Metodas grįžta true jei yra degtukas ir false kitaip. Pavyzdžiui:

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

Šiame pavyzdyje mes naudojome metodą test() norėdami patikrinti, ar reguliarioji išraiška /mundo/ turi atitikties teksto eilutėje „Sveikas, pasauli!“. Metodas test() sugrąžink true nes yra sutapimas.

Tai tik keletas dažniausiai naudojamų darbo su įprastomis „JavaScript“ išraiškomis metodų. Kiekvienas iš šių metodų turi savo paskirtį ir gali būti naudojamas pagal jūsų konkrečius poreikius. Eksperimentuokite su jais ir sužinokite, kaip jie gali palengvinti ir pagreitinti jūsų darbą su reguliariosiomis išraiškomis.

Dažniausiai užduodami klausimai

Kas yra reguliariosios išraiškos „JavaScript“ kalboje? Reguliariosios išraiškos „JavaScript“ kalboje yra paieškos šablonai, naudojami tekstui simbolių eilutėse rasti ir manipuliuoti.

Kaip sukurti reguliariąsias išraiškas „JavaScript“? „JavaScript“ įprastos išraiškos sukuriamos naudojant klasę RegExp arba naudojant pažodinį žodį /patrón/.

Kuo skiriasi modifikatoriai ir vėliavėlės reguliariosiose išraiškose? Modifikatoriai pridedami prie reguliaraus reiškinio pabaigos ir keičia jo elgesį. Kuriant reguliarųjį posakį naudojant klasę, žymos pridedamos po antrojo pasvirojo brūkšnio RegExp.

Kuo skiriasi metodas match() ir metodas test()? Metodas match() Jis naudojamas norint rasti visas reguliariosios išraiškos atitikmenis teksto eilutėje ir pateikia masyvą su rezultatais. Metodas test() Jis naudojamas norint patikrinti, ar reguliarioji išraiška turi atitikties teksto eilutėje, ir grąžina loginę reikšmę.

Kaip galiu užfiksuoti konkrečias reikšmes naudojant grupes įprastoje išraiškoje? Grupės ( ) reguliariojoje išraiškoje leidžia užfiksuoti konkrečias posakius. Tada galite nurodyti šias grupes naudodami nuorodas \1, \2Ir tt

Kokius metodus galiu naudoti norint dirbti su įprastomis „JavaScript“ išraiškomis? Yra keletas naudingų metodų, kaip dirbti su įprastomis „JavaScript“ išraiškomis match(), replace(), split() y test(). Kiekvienas iš šių metodų turi savo paskirtį ir gali būti naudojamas pagal jūsų konkrečius poreikius.

Išvada

Reguliarieji reiškiniai yra galingas įrankis dirbant su tekstu „JavaScript“ kalboje. Supratimas pagrindinių reguliariųjų reiškinių principų, sintaksės ir pažangių metodų leis jums efektyviai ir tiksliai ieškoti, keisti ir manipuliuoti teksto eilutėmis. Nuo pagrindinio atitikimo iki modifikatorių, grupių ir kitų naudingų metodų naudojimo – sužinojote, kaip maksimaliai išnaudoti reguliariuosius reiškinius savo „JavaScript“ projektuose.

Nepamirškite praktikuoti ir eksperimentuoti su skirtingais modeliais ir naudoti atvejus, kad sustiprintumėte savo supratimą ir susipažinimą su reguliariosiomis išraiškomis. Nedvejodami naudokite reguliariąsias išraiškas, kad pagerintumėte kodo efektyvumą ir kokybę!