Regulaaravaldised JavaScriptis: sissejuhatus

Viimane uuendus: 5 de noviembre de 2025
Regulaaravaldised JavaScriptis

Tere tulemast sellesse täielikku JavaScripti regulaaravaldiste juhendisse! Selles artiklis uurime üksikasjalikult, mis on regulaaravaldised, kuidas neid JavaScriptis kasutatakse ja kuidas need aitavad teil koodi lihtsustada ja optimeerida. Alustades põhitõdedest ja lõpetades praktiliste näidetega, käsitleme kõike, mida pead teadma, et hakata oma JavaScripti projektides regulaaravaldisi maksimaalselt ära kasutama. Nii et alustame!

Sissejuhatus regulaaravaldistesse

Regulaaravaldised on otsingumustrid, mida kasutatakse märgistringides teksti leidmiseks ja töötlemiseks. Need koosnevad sõnasõnaliste märkide ja metamärkide kombinatsioonist, mis määratlevad konkreetsed reeglid tekstis vastete leidmiseks. Need reeglid võivad hõlmata konkreetsete märkide, märgivahemike, korduste, alternatiivide ja palju muu otsimist.

JavaScriptis luuakse regulaaravaldised klassi abil RegExp või kasutades sõnasõna /patrón/. Muster on regulaaravaldis ise, mis on ümbritsetud kaldkriipsudega. Vaatame lihtsat näidet:

const regex = /hola/;

 

Selles näites oleme loonud regulaaravaldise, mis otsib tekstist stringi "tere". Nüüd, kui meil on põhiteadmised regulaaravaldiste olemasolust, uurime mõnda põhimõistet ja täiustatud tehnikaid nendega JavaScriptis töötamiseks.

Regulaaravaldiste põhisüntaks

JavaScripti regulaaravaldised koosnevad mitmest võtmeelemendist, mis võimaldavad meil määratleda keerukamaid otsingumustreid. Need elemendid hõlmavad sõnasõnalisi märke, metamärke, märgiklasse, kvantoreid, ankruid ja palju muud. Vaatame mõnda näidet nendest elementidest:

Sõnasõnalised tegelased

Literaalsed märgid on need, mida otsitakse nii, nagu need tekstis esinevad. Näiteks regulaaravaldis /hola/ otsib tekstistringist märgijada "tere". Oluline on märkida, et regulaaravaldised on tõstutundlikud, seega /hola/ ei vasta sõnadele "Tere" ega "HELLO".

Metategelased

Metamärgid on erimärgid, millel on regulaaravaldistes eriline tähendus. Näiteks metategelane . Seda kasutatakse mis tahes tähemärgi tähistamiseks, välja arvatud reavahetus. Teine levinud metamärk on ^, mida kasutatakse tekstistringi alguse tähistamiseks. Näiteks regulaaravaldis /^hola/ sobib mis tahes tekstistringiga, mis algab sõnaga "tere".

Tegelaste klassid

Tähemärgiklasse kasutatakse mis tahes märgi otsimiseks konkreetses komplektis. Näiteks regulaaravaldis /[aeiou]/ sobib tekstistringi mis tahes täishäälikuga. Märgiklassides on võimalik kasutada ka märgivahemikke. Näiteks regulaaravaldis /[a-z]/ sobib mis tahes väiketähtedega.

Kvantorid

Kvantoreid kasutatakse regulaaravaldises elemendi esinemiste arvu määramiseks. Näiteks kvantor * näitab, et eelmine element võib ilmuda null või rohkem korda. Kvantifikaator + näitab, et eelnev element peaks ilmuma üks või mitu korda. Näiteks regulaaravaldis /a+/ vastab ühele või mitmele "a"-le tekstistringis.

Ankrud

Ankruid kasutatakse vaste asukoha näitamiseks tekstistringis. Näiteks ankur \b vastab sõnapiirile. Näiteks regulaaravaldis /bholab/ vastab ainult sõnale "tere" kui a täis sõna, ilma et oleks sobitatud pikemaid sõnu, mis sisaldavad osana sõna "tere".

Need on vaid mõned näited JavaScripti regulaaravaldiste põhisüntaksist. Artikli edenedes uurime JavaScripti regulaaravaldistega töötamise keerukamaid kontseptsioone ja tehnikaid.

Põhiline vasteotsing

Üks levinumaid regulaaravaldistega tehtavaid toiminguid on vastete otsimine tekstistringist. JavaScriptis saame seda meetodit kasutada search() et leida tekstistringis regulaaravaldise esimene vaste. Vaatame näidet:

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

Selles näites kasutasime meetodit search() regulaaravaldise esimese vaste leidmiseks /mundo/ tekstistringis "Tere, maailm!" Meetod search() tagastab esimese leitud vaste indeksi või -1, kui vastet ei leitud.

Lisaks meetodile search(), JavaScript pakub ka muid kasulikke meetodeid regulaaravaldistega töötamiseks, nt match(), replace(), split() y test(). Igal neist meetoditest on oma eesmärk ja neid saab kasutada vastavalt teie konkreetsetele vajadustele.

Modifikaatorite ja lippude kasutamine

JavaScriptis võivad regulaaravaldised sisaldada muutjaid ja lippe, mis võimaldavad paindlikumaid ja kohandatud otsinguid. Muutjad lisatakse regulaaravaldise lõppu ja muudavad selle käitumist. Mõned kõige levinumad modifikaatorid on järgmised:

mina (tundetu)

Modifikaator i kasutatakse tõstutundliku otsingu tegemiseks. Näiteks regulaaravaldis /hola/i vastab nii "tere" kui ka "Tere" või "HELLO".

g (ülemaailmne)

Modifikaator g Seda kasutatakse globaalse otsingu tegemiseks kogu tekstistringis, selle asemel, et peatuda esimese leitud vaste juures. Näiteks regulaaravaldis /a+/g sobitab kõik ühe või mitme "a" esinemissagedused tekstistringis.

  RAT levitati npm-is Axios pahatahtlike versioonide abil

m (mitmerealine)

Modifikaator m Seda kasutatakse tekstistringi mitme rea otsimiseks. Näiteks regulaaravaldis /^hola/m vastab sõnale "tere" tekstistringi iga rea ​​alguses.

JavaScript võimaldab lisaks modifikaatoritele kasutada regulaaravaldistes ka lippe. Klassi abil regulaaravaldise loomisel lisatakse lipud pärast teist kaldkriipsu RegExp. Mõned levinumad lipud on järgmised:

mina (tundetu)

Nagu modifikaator i, lipp i teostab tõstutundlikku otsingut. Näiteks regulaaravaldis new RegExp("hola", "i") vastab nii "tere" kui ka "Tere" või "HELLO".

g (ülemaailmne)

Nagu modifikaator g, lipp g teostab globaalse otsingu kogu tekstistringi kohta. Näiteks regulaaravaldis new RegExp("a+", "g") sobitab kõik ühe või mitme "a" esinemissagedused tekstistringis.

m (mitmerealine)

Nagu modifikaator m, lipp m sooritab otsingu mitmelt realt tekstistringis. Näiteks regulaaravaldis new RegExp("^hola", "m") vastab sõnale "tere" tekstistringi iga rea ​​alguses.

Modifikaatorite ja lippude kasutamine JavaScripti regulaaravaldistes võib olla väga kasulik otsingute kohandamiseks erinevatele juhtumitele ja konkreetsetele nõuetele. Katsetage nendega ja avastage, kuidas saate neid funktsioone oma koodis maksimaalselt ära kasutada.

Metamärgid ja erimärgid

Metamärgid ja erimärgid on regulaaravaldiste põhielemendid, mis võimaldavad meil sooritada võimsamaid ja paindlikumaid otsinguid. Oleme juba maininud mõnda metamärki, nt . y ^, kuid regulaaravaldistes saate kasutada palju muud. Vaatame mõningaid levinumaid metamärke ja erimärke:

. (punkt)

Metategelane . Seda kasutatakse mis tahes tähemärgi tähistamiseks, välja arvatud reavahetus. Näiteks regulaaravaldis /h.t/ vastab sõnadele "hat", "hot", "hit" ja mis tahes muu kolmetäheline sõna, mis algab tähega "h" ja lõpeb tähega "t".

\ (kaldkriips)

Kaldkriipsu kasutatakse regulaaravaldise erimärkide vältimiseks. Näiteks kui soovite otsida tekstistringist sõnasõnalist perioodi, peate selle vältima, kasutades kaldkriipsu. Regulaaravaldis /www\.google\.com/ vastab tekstistringile www.google.com.

\d (number)

Metategelane \d kasutatakse mis tahes numbri 0 kuni 9 otsimiseks. Näiteks regulaaravaldis /\d+/ vastab ühele või mitmele numbrile tekstistringis.

\w (tähtnumbriline märk)

Metategelane \w kasutatakse mis tahes tähtnumbriliste märkide (suur- ja väiketähed, numbrid ja allkriipsud) otsimiseks. Näiteks regulaaravaldis /\w+/ vastab ühele või mitmele tähtnumbrilisele tähemärgile tekstistringis olevale sõnale.

Need on vaid mõned näited metamärkidest ja erimärkidest, mida saate regulaaravaldistes kasutada. Kui hakkate JavaScripti regulaaravaldiseid paremini tundma, avastate palju erinevaid otsingute ja tekstiga manipuleerimise võimalusi.

Tähemärkide klassid ja vahemikud

Märgiklassid on regulaaravaldiste teine ​​põhielement, mis võimaldab meil otsida mis tahes märki konkreetsest komplektist. JavaScriptis saame kasutada sulgusid [] märgiklassi määratlemiseks. Vaatame mõningaid näiteid tähemärkide klasside ja vahemike kohta:

[aeiou]

Tegelaste klass [aeiou] sobib tekstistringi mis tahes täishäälikuga. Näiteks regulaaravaldis /[aeiou]/ vaste "a", "e", "i", "o" või "u" tekstistringis.

[az]

Tegelaste valik [a-z] vastab mis tahes väiketähtedele inglise tähestikus. Näiteks regulaaravaldis /[a-z]/ vastab mis tahes väiketähtedele tekstistringis.

[0-9]

Tegelaste valik [0-9] vastab mis tahes numbrile vahemikus 0 kuni 9 tekstistringis. Näiteks regulaaravaldis /[0-9]/ vastab mis tahes ühekohalisele numbrile.

[A-Z-z]

Tegelaste klass [A-Za-z] sobib mis tahes suure või väikese tähega inglise tähestikus. Näiteks regulaaravaldis /[A-Za-z]/ sobib mis tahes tähega tekstistringis.

Märgiklassid ja vahemikud võimaldavad meil määratleda kindlad märgikomplektid, mida regulaaravaldises otsida. Kasutage neid oma otsingute kohandamiseks teie konkreetsetele vajadustele ja piirangutele.

Kvantorid ja kordused

Kvantorid ja kordused on regulaaravaldiste põhielemendid, mis võimaldavad meil määrata elemendi esinemiste arvu tekstistringis. Vaatame JavaScripti kõige levinumaid kvantoreid:

* (tärn)

Kvantifikaator * näitab, et eelmine element võib ilmuda null või rohkem korda. Näiteks regulaaravaldis /a*/ vastab nullile või enamale a-le tekstistringis.

  Replit: kõik, mida peate selle koostöötööriista kohta teadma

+ (veel)

Kvantifikaator + näitab, et eelnev element peaks ilmuma üks või mitu korda. Näiteks regulaaravaldis /a+/ vastab ühele või mitmele "a"-le tekstistringis.

? (küsimus)

Kvantifikaator ? näitab, et eelmine element võib ilmuda null või üks kord. Näiteks regulaaravaldis /colou?r/ sobib nii "värv" kui ka "värv".

{n} (täpselt n korda)

Kvantifikaator {n} näitab, et eelmine element peab ilmuma täpselt n korda. Näiteks regulaaravaldis /a{3}/ vastab täpselt kolmele "a"-le tekstistringis.

{n,} (vähemalt n korda)

Kvantifikaator {n,} näitab, et eelmine element peab ilmuma vähemalt n korda. Näiteks regulaaravaldis /a{2,}/ vastab kahele või enamale a-le tekstistringis.

{n,m}

Kvantifikaator {n,m} näitab, et eelmine element peab esinema vähemalt n ja maksimaalselt m korda. Näiteks regulaaravaldis /a{2,4}/ vastab kahele, kolmele või neljale "a"-le tekstistringis.

Need on vaid mõned näited kvantoritest, mida saate regulaaravaldistes kasutada. Kvantorid võimaldavad meil täpsustada tekstiotsingu ja -manipulatsiooni korduste mustreid, muutes tekstistringidest konkreetse teabe eraldamise lihtsamaks.

Ankrud ja sõnapiirid

Ankrud ja sõnapiirid on elemendid, mis võimaldavad meil näidata vaste asukohta tekstistringis. Need elemendid on eriti kasulikud, kui tahame otsida terveid sõnu või veenduda, et vaste on rea alguses või lõpus. Vaatame mõningaid näiteid ankrute ja sõnapiiride kohta:

\b (sõna piir)

Sõna piirang \b ühtib tähtnumbrilise ja mittetähtnumbrilise märgi vahelise piiriga. Näiteks regulaaravaldis /\bjavascript\b/ vastab ainult sõnale "javascript" täissõnana, mitte ei sobi pikematele sõnadele, mis sisaldavad "javascripti" osana.

^ (rea algus)

Tegelaskuju ^ Seda kasutatakse tekstistringi rea alguse tähistamiseks. Näiteks regulaaravaldis /^hola/ vastab sõnale "tere" tekstistringi iga rea ​​alguses.

$ (rea lõpp)

Tegelaskuju $ Seda kasutatakse tekstistringi rea lõpu tähistamiseks. Näiteks regulaaravaldis /mundo$/ vastab tekstistringi iga rea ​​lõpus olevale sõnale "maailm".

\A (teksti algus)

Tegelaskuju \A Seda kasutatakse kogu teksti alguse tähistamiseks tekstistringis, mitte ainult rea alguses. Näiteks regulaaravaldis /^\AHola/ vastab sõnale "Tere" kogu teksti alguses.

\Z (teksti lõpp)

Tegelaskuju \Z kasutatakse kogu teksti lõpu märkimiseks tekstistringis, mitte ainult rea lõpus. Näiteks regulaaravaldis /Mundo\Z/ vastab sõnale "maailm" kogu teksti lõpus.

Ankrud ja sõnapiirid võimaldavad meil otsida vasteid tekstistringi kindlatest kohtadest, mis võib olla kasulik olukordades, kus tahame tagada, et vaste on kindlas kohas.

Rühmad ja jäädvustused

Rühmad ja jäädvustused on regulaaravaldiste täiustatud elemendid, mis võimaldavad meil alamväljendeid rühmitada ja neid hilisemaks kasutamiseks jäädvustada. Vaatame, kuidas rühmad ja jäädvustused töötavad:

( ) (sulud)

Sulud on Nad kasutavad rühmitamiseks alamavaldised regulaaravaldises. Näiteks regulaaravaldis /(d{2})-(d{2})-(d{4})/ se kasutatakse kuupäeva otsimiseks vormingus "pp-kk-aaaa. Rühmad ( ) Need võimaldavad meil jäädvustada päeva, kuu ja aasta väärtused eraldi.

\1, \2, \3 (rühma viited)

Grupiviiteid kasutatakse regulaaravaldises varem hõivatud rühmadele viitamiseks. Näiteks regulaaravaldis /(\w+) \1/ vastab mis tahes sõnale, millele järgneb sama sõna, mida korratakse. Näiteks "tere tere", "maailmamaailm" jne.

?: (mittehõive grupp)

Sümbol ?: Seda kasutatakse mittehõivestavate rühmade loomiseks. Neid rühmi kasutatakse siis, kui tahame alamväljendeid rühmitada, kuid me ei soovi tulemust jäädvustada. Näiteks regulaaravaldis /https?:\/\/(?:www\.)?google\.com/ vastab nii aadressidele „http://www.google.com” kui ka „https://google.com”, kuid jäädvustab ainult URL-i asjakohase osa.

Grupid ja jäädvustused võimaldavad meil regulaaravaldisi tõhusamalt ja loetavamalt struktureerida ja korraldada. Need annavad meile ka võimaluse jäädvustada konkreetseid väärtusi hilisemaks rakendustes kasutamiseks.

Kasulikud meetodid regulaaravaldistega töötamiseks

JavaScript pakub regulaaravaldistega töötamiseks mitmeid kasulikke meetodeid. Need meetodid võimaldavad meil regulaaravaldiste abil teostada tavalisi toiminguid, nagu tekstistringide otsimine, asendamine ja tükeldamine. Vaatame mõnda neist meetoditest:

vaste()

Meetod match() Seda kasutatakse tekstistringis regulaaravaldise kõigi vastete leidmiseks ja tulemustega massiivi tagastamiseks. Näiteks:

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

Selles näites kasutasime meetodit match() et leida kõik regulaaravaldise vasted /o/g tekstistringis "Tere, maailm!" Meetod match() tagastab massiivi kõigi leitud vastetega.

  Pythoni ajalugu: selle algusest tänapäevani

asenda ()

Meetod replace() kasutatakse regulaaravaldise vastete asendamiseks tekstistringis uue väärtusega. Näiteks:

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

Selles näites kasutasime meetodit replace() regulaaravaldise vaste asendamiseks /mundo/ tekstistringis "Tere, maailm!" sõna "sõber" jaoks. Meetod replace() tagastab uue tekstistringi tehtud asendustega.

jagama ()

Meetod split() kasutatakse tekstistringi jagamiseks alamstringi massiiviks, kasutades eraldajana regulaaravaldist. Näiteks:

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

Selles näites kasutasime meetodit split() jagada tekstistring "Tere,maailm,sõber" regulaaravaldise abil alamstringideks /,/g eraldajana. Meetod split() tagastab massiivi saadud alamstringidega.

test ()

Meetod test() Seda kasutatakse selleks, et kontrollida, kas regulaaravaldisel on tekstistringis vasteid. Meetod naaseb true kui on vaste ja false muidu. Näiteks:

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

Selles näites kasutasime meetodit test() regulaaravaldise kontrollimiseks /mundo/ on vasteid tekstistringis "Tere, maailm!". Meetod test() tagasi tooma true sest seal on kokkusattumus.

Need on vaid mõned kõige levinumad meetodid JavaScripti regulaaravaldistega töötamiseks. Igal neist meetoditest on oma eesmärk ja neid saab kasutada vastavalt teie konkreetsetele vajadustele. Katsetage nendega ja avastage, kuidas nad saavad teie töö regulaaravaldistega lihtsamaks ja kiiremaks muuta.

Preguntas frecuentes

Mis on JavaScripti regulaaravaldised? JavaScripti regulaaravaldised on otsingumustrid, mida kasutatakse teksti leidmiseks ja muutmiseks märgistringides.

Kuidas luua JavaScriptis regulaaravaldisi? JavaScripti regulaaravaldised luuakse klassi abil RegExp või kasutades sõnasõna /patrón/.

Mis vahe on regulaaravaldiste muutjatel ja lippudel? Muutjad lisatakse regulaaravaldise lõppu ja muudavad selle käitumist. Klassi abil regulaaravaldise loomisel lisatakse lipud pärast teist kaldkriipsu RegExp.

Mis vahe on meetodil match() ja meetod test()? Meetod match() Seda kasutatakse regulaaravaldise kõigi vastete leidmiseks tekstistringis ja tagastab massiivi koos tulemustega. Meetod test() Seda kasutatakse kontrollimaks, kas regulaaravaldisel on tekstistringis vasteid, ja tagastab tõeväärtuse.

Kuidas saan fikseerida kindlaid väärtusi, kasutades regulaaravaldises olevaid rühmi? Rühmad ( ) regulaaravaldises võimaldab jäädvustada konkreetseid alamavaldisi. Seejärel saate viidete abil viidata nendele rühmadele \1, \2Jne

Milliseid meetodeid saan kasutada JavaScripti regulaaravaldistega töötamiseks? Mõned kasulikud meetodid JavaScripti regulaaravaldistega töötamiseks on match(), replace(), split() y test(). Igal neist meetoditest on oma eesmärk ja neid saab kasutada vastavalt teie konkreetsetele vajadustele.

Järeldus

Regulaaravaldised on JavaScriptis tekstiga töötamiseks võimas tööriist. Regulaaravaldiste põhitõdede , süntaksi ja edasijõudnute tehnikate mõistmine võimaldab teil tekstistringe tõhusalt ja täpselt otsida, asendada ja manipuleerida. Alates põhilisest vastendamisest kuni modifikaatorite, rühmituste ja muude kasulike meetodite kasutamiseni olete õppinud, kuidas oma JavaScripti projektides regulaaravaldistest maksimumi võtta.

Ärge unustage harjutada ja katsetada erinevaid mustreid ning kasutada juhtumeid, et tugevdada oma arusaamist ja tavaavaldiste tundmist. Ärge kartke kasutada regulaaravaldisi oma koodi tõhususe ja kvaliteedi parandamiseks!