Reguláris kifejezések a JavaScriptben: Bevezetés

Utolsó frissítés: 5 november 2025
Reguláris kifejezések JavaScriptben

Üdvözöljük ebben a teljes útmutatóban a JavaScript reguláris kifejezéseiről! Ebben a cikkben részletesen megvizsgáljuk, mik azok a reguláris kifejezések, hogyan használják őket a JavaScriptben, és hogyan segíthetnek egyszerűsíteni és optimalizálni a kódot. Az alapoktól a gyakorlati példákig mindent lefedünk, amit tudnia kell ahhoz, hogy a legtöbbet hozza ki a reguláris kifejezésekből a JavaScript-projektekben. Tehát kezdjük!

Bevezetés a reguláris kifejezésekbe

A reguláris kifejezések keresési minták, amelyeket a karakterláncokban lévő szöveg megkeresésére és kezelésére használnak. Szó szerinti karakterek és metakarakterek kombinációjából állnak, amelyek specifikus szabályokat határoznak meg a szövegben való egyezés megtalálására. Ezek a szabályok magukban foglalhatják bizonyos karakterek, karaktertartományok, ismétlések, alternatívák és még sok más keresését.

A JavaScriptben a reguláris kifejezések az osztály használatával jönnek létre RegExp vagy a literál használatával /patrón/. A minta maga a reguláris kifejezés, amely perjelek közé van zárva. Nézzünk egy egyszerű példát:

const regex = /hola/;

 

Ebben a példában létrehoztunk egy reguláris kifejezést, amely a „hello” karakterláncot keresi a szövegben. Most, hogy már alapvető ismereteink vannak a reguláris kifejezések fogalmáról, tekintsünk meg néhány kulcsfontosságú fogalmat és fejlett technikát a JavaScriptben való használatukhoz.

A reguláris kifejezések alapvető szintaxisa

A JavaScript reguláris kifejezései több kulcselemből állnak, amelyek lehetővé teszik számunkra, hogy bonyolultabb keresési mintákat definiáljunk. Ezek az elemek közé tartoznak a szó szerinti karakterek, metakarakterek, karakterosztályok, kvantorok, horgonyok stb. Nézzünk néhány példát ezekre az elemekre:

Szó szerinti karakterek

A szó szerinti karakterek azok, amelyekre úgy keresünk, ahogyan megjelennek a szövegben. Például a reguláris kifejezés /hola/ megkeresi a „hello” karaktersorozatot egy szöveges sztringben. Fontos megjegyezni, hogy a reguláris kifejezések megkülönböztetik a kis- és nagybetűket, tehát /hola/ nem egyezik a "Hello" vagy a "HELLO" kifejezéssel.

Metakarakterek

A metakarakterek olyan speciális karakterek, amelyek különleges jelentéssel bírnak a reguláris kifejezésekben. Például a metakarakter . Bármely karakter ábrázolására szolgál, kivéve az újsort. Egy másik gyakori metakarakter a ^, amely egy szöveges karakterlánc kezdetének jelzésére szolgál. Például a reguláris kifejezés /^hola/ minden "hello"-val kezdődő szövegnek megfelel.

Karakter osztályok

A karakterosztályok bármely karakter keresésére szolgálnak egy adott halmazon belül. Például a reguláris kifejezés /[aeiou]/ egy szöveges karakterlánc bármely magánhangzójához illeszkedik. A karakterosztályokban karaktertartományok is használhatók. Például a reguláris kifejezés /[a-z]/ bármely kisbetűvel megegyezik.

Kvantifikátorok

A kvantorok arra szolgálnak, hogy meghatározzák egy elem előfordulásának számát egy reguláris kifejezésben. Például a kvantor * azt jelzi, hogy az előző elem nulla vagy többször is megjelenhet. A kvantor + azt jelzi, hogy az előző elemnek egyszer vagy többször meg kell jelennie. Például a reguláris kifejezés /a+/ egy vagy több "a"-nek felel meg egy szöveges karakterláncban.

Horgonyok

A horgonyok az egyezés pozícióját jelzik a szöveges karakterláncon belül. Például a horgony \b szóhatárnak felel meg. Például a reguláris kifejezés /bholab/ csak a "hello" szóval fog egyezni, mint a teljes szó, anélkül, hogy hosszabb szavakat társítana, amelyek részeként a „hello” szót tartalmazzák.

Ezek csak néhány példa a JavaScript reguláris kifejezések alapvető szintaxisára. Ahogy haladunk előre ebben a cikkben , a reguláris kifejezésekkel való JavaScript-használat fejlettebb koncepcióit és technikáit fogjuk megvizsgálni.

Alapvető egyezéskeresés

A reguláris kifejezésekkel végzett egyik leggyakoribb művelet a szöveges karakterláncban található egyezések keresése. JavaScriptben használhatjuk a módszert search() hogy megkeressük egy reguláris kifejezés első egyezését egy szöveges karakterláncban. Lássunk egy példát:

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

Ebben a példában a módszert alkalmaztuk search() hogy megtaláljuk a reguláris kifejezés első egyezését /mundo/ a "Hello, world!" A módszer search() az első talált egyezés indexét adja vissza, vagy -1-et, ha nem található egyezés.

A módszer mellett search(), a JavaScript más hasznos módszereket is biztosít a reguláris kifejezésekkel való munkavégzéshez, mint pl match(), replace(), split() y test(). Ezen módszerek mindegyikének megvan a maga célja, és az Ön egyedi igényei szerint használható.

Módosítók és zászlók használata

A JavaScriptben a reguláris kifejezések tartalmazhatnak módosítókat és jelzőket, amelyek rugalmasabb és testreszabottabb keresést tesznek lehetővé. A módosítók a reguláris kifejezés végére kerülnek, és módosítják a viselkedését. A leggyakoribb módosítók közül néhány:

én (érzéketlen)

A módosító i kis- és nagybetűket nem érzékeny keresés végrehajtására szolgál. Például a reguláris kifejezés /hola/i egyezik a „hello” és a „Hello” vagy a „HELLO” szóval.

g (globális)

A módosító g Arra használják, hogy globális keresést hajtsanak végre a teljes szöveges karakterláncon, ahelyett, hogy az első találatnál megállnának. Például a reguláris kifejezés /a+/g egy vagy több "a" karakterlánc összes előfordulásához illeszkedik.

  Függőségkezelés: Teljes körű útmutató projektekhez és termékekhez

m (többsoros)

A módosító m Egy szöveges karakterláncon belüli több sorban történő keresésre szolgál. Például a reguláris kifejezés /^hola/m illeszkedik a "hello" szóhoz egy szöveges karakterlánc minden sorának elején.

A módosítók mellett a JavaScript lehetővé teszi a jelzők használatát is a reguláris kifejezésekben. A zászlók a második perjel után kerülnek hozzáadásra, amikor reguláris kifejezést hoz létre az osztály használatával RegExp. A leggyakoribb zászlók közül néhány:

én (érzéketlen)

Mint a módosító i, a zászló i kis- és nagybetűket nem érzékeny keresést végez. Például a reguláris kifejezés new RegExp("hola", "i") egyezik a „hello” és a „Hello” vagy a „HELLO” szóval.

g (globális)

Mint a módosító g, a zászló g globális keresést hajt végre a teljes szöveges karakterláncon. Például a reguláris kifejezés new RegExp("a+", "g") egy vagy több "a" karakterlánc összes előfordulásához illeszkedik.

m (többsoros)

Mint a módosító m, a zászló m keresést végez több sorban egy szöveges karakterláncon belül. Például a reguláris kifejezés new RegExp("^hola", "m") illeszkedik a "hello" szóhoz egy szöveges karakterlánc minden sorának elején.

A módosítók és jelzők használata a JavaScript reguláris kifejezésekben nagyon hasznos lehet a keresések különböző esetekhez és konkrét követelményekhez való igazításához. Kísérletezzen velük, és fedezze fel, hogyan hozhatja ki a legtöbbet ezekből a funkciókból a kódjában.

Metakarakterek és speciális karakterek

A metakarakterek és a speciális karakterek a reguláris kifejezések kulcsfontosságú elemei, amelyek hatékonyabb és rugalmasabb keresést tesznek lehetővé. Említettünk már néhány metakaraktert, mint pl . y ^, de sok más is használható a reguláris kifejezésekben. Nézzünk néhányat a leggyakoribb metakarakterek és speciális karakterek közül:

. (pont)

A metakarakter . Bármely karakter ábrázolására szolgál, kivéve az újsort. Például a reguláris kifejezés /h.t/ megfelel a „hat”, „hot”, „hit” és bármely más hárombetűs szónak, amely „h”-val kezdődik és „t”-re végződik.

\ (perjel)

A fordított perjel a speciális karakterek elkerülésére szolgál egy reguláris kifejezésben. Ha például egy szó szerinti pontot szeretne keresni egy szöveges karakterláncban, akkor azt a fordított perjel használatával kell megszakítania. A reguláris kifejezés /www\.google\.com/ megegyezik a „www.google.com” szöveges karakterlánccal.

\d (számjegy)

A metakarakter \d a 0 és 9 közötti számjegyek keresésére szolgál. Például a reguláris kifejezés /\d+/ megfelel egy vagy több számjegynek egy szöveges karakterláncban.

\w (alfanumerikus karakter)

A metakarakter \w bármely alfanumerikus karakter (kis- és nagybetűk, számjegyek és aláhúzásjelek) keresésére szolgál. Például a reguláris kifejezés /\w+/ egy vagy több alfanumerikus karakterből álló szónak megfelel egy szöveges karakterláncban.

Ez csak néhány példa a reguláris kifejezésekben használható metakarakterekre és speciális karakterekre. Ahogy egyre jobban megismeri a JavaScript reguláris kifejezéseit, számos lehetőséget fedezhet fel a keresések és a szövegkezelés finomítására.

Karakterosztályok és -tartományok

A karakterosztályok a reguláris kifejezések másik kulcsfontosságú elemei, amelyek lehetővé teszik, hogy bármely karaktert keressünk egy adott halmazon belül. JavaScriptben használhatunk zárójeleket [] karakterosztály meghatározásához. Nézzünk néhány példát a karakterosztályokra és -tartományokra:

[aeiou]

A karakterosztály [aeiou] egy szöveges karakterlánc bármely magánhangzójához illeszkedik. Például a reguláris kifejezés /[aeiou]/ egyezik az „a”, „e”, „i”, „o” vagy „u” karakterlánccal.

[az]

A karakterek köre [a-z] megfelel az angol ábécé bármely kisbetűjének. Például a reguláris kifejezés /[a-z]/ minden kisbetűvel megegyezik egy szöveges karakterláncban.

[0-9]

A karakterek köre [0-9] egy szöveges karakterlánc bármely 0 és 9 közötti számjegyével megegyezik. Például a reguláris kifejezés /[0-9]/ bármely egyjegyű számmal megegyezik.

[A-Z-z]

A karakterosztály [A-Za-z] az angol ábécé bármely kis- és nagybetűje megegyezik. Például a reguláris kifejezés /[A-Za-z]/ egy szöveges karakterlánc bármely betűjével megegyezik.

A karakterosztályok és -tartományok lehetővé teszik számunkra, hogy meghatározott karakterkészleteket definiáljunk, amelyeket keresni kell egy reguláris kifejezésben. Használja őket arra, hogy kereséseit az Ön sajátos igényeihez és korlátozásaihoz igazítsa.

Kvantifikátorok és ismétlések

A kvantorok és az ismétlések a reguláris kifejezések kulcselemei, amelyek lehetővé teszik számunkra, hogy meghatározzuk egy elem előfordulásának számát egy szöveges karakterláncban. Nézzünk meg néhányat a JavaScript leggyakoribb kvantifikátorai közül:

* (csillag)

A kvantor * azt jelzi, hogy az előző elem nulla vagy többször is megjelenhet. Például a reguláris kifejezés /a*/ nulla vagy több "a"-nak felel meg egy szöveges karakterláncban.

  Részletes tanulmány a tartós XSS sebezhetőségekről

+ (több)

A kvantor + azt jelzi, hogy az előző elemnek egyszer vagy többször meg kell jelennie. Például a reguláris kifejezés /a+/ egy vagy több "a"-nek felel meg egy szöveges karakterláncban.

? (kérdés)

A kvantor ? azt jelzi, hogy az előző elem nullaként vagy egyszer jelenhet meg. Például a reguláris kifejezés /colou?r/ egyezik a „színnel” és a „színnel” is.

{n} (pontosan n-szer)

A kvantor {n} azt jelzi, hogy az előző elemnek pontosan n-szer kell megjelennie. Például a reguláris kifejezés /a{3}/ pontosan megegyezik három "a"-vel egy szöveges karakterláncban.

{n,} (legalább n-szer)

A kvantor {n,} azt jelzi, hogy az előző elemnek legalább n-szer meg kell jelennie. Például a reguláris kifejezés /a{2,}/ egy szöveges karakterláncban két vagy több "a"-vel fog megegyezni.

{n, m}

A kvantor {n,m} azt jelzi, hogy az előző elemnek legalább n-szer és legfeljebb m-szer kell megjelennie. Például a reguláris kifejezés /a{2,4}/ két, három vagy négy "a"-t fog egyezni egy szöveges karakterláncban.

Ez csak néhány példa a reguláris kifejezésekben használható kvantorokra. A kvantorok lehetővé teszik számunkra, hogy ismétlési mintákat adjunk meg a szövegkeresésekben és -manipulációkban, így könnyebben nyerhetünk ki konkrét információkat a szöveges karakterláncokból.

Horgonyok és szóhatárok

A horgonyok és a szóhatárok olyan elemek, amelyek lehetővé teszik az egyezés pozíciójának jelzését egy szöveges karakterláncon belül. Ezek az elemek különösen akkor hasznosak, ha teljes szavakra akarunk keresni, vagy meg akarunk győződni arról, hogy egy egyezés egy sor elején vagy végén van. Nézzünk néhány példát a horgonyokra és a szóhatárokra:

\b (szóhatár)

A szóhatár \b megegyezik az alfanumerikus karakter és a nem alfanumerikus karakter közötti határvonallal. Például a reguláris kifejezés /\bjavascript\b/ csak a „javascript” szónak felel meg teljes szóként, nem pedig a „javascript” szót tartalmazó hosszabb szavakkal.

^ (sor eleje)

A karakter ^ Szövegsor elejének jelzésére szolgál. Például a reguláris kifejezés /^hola/ illeszkedik a "hello" szóhoz egy szöveges karakterlánc minden sorának elején.

$ (sor vége)

A karakter $ Egy szöveges karakterláncban egy sor végének jelzésére szolgál. Például a reguláris kifejezés /mundo$/ egy szöveges karakterlánc minden sorának végén található "világ" szóval fog megegyezni.

\A (szöveg eleje)

A karakter \A A karakterláncban lévő összes szöveg kezdetének jelzésére szolgál, nem csak egy sor elejét. Például a reguláris kifejezés /^\AHola/ egyezni fog a „Hello” szóval a teljes szöveg elején.

\Z (a szöveg vége)

A karakter \Z A karakterláncban lévő összes szöveg végét jelzi, nem csak egy sor végét. Például a reguláris kifejezés /Mundo\Z/ a "World" szóval fog megegyezni a teljes szöveg végén.

A horgonyok és a szóhatárok lehetővé teszik számunkra, hogy egy szöveges karakterláncon belül meghatározott helyeken egyezéseket keressünk, ami hasznos lehet olyan helyzetekben, amikor biztosítani szeretnénk, hogy az egyezés egy adott helyen legyen.

Csoportok és rögzítések

A csoportok és a rögzítések a reguláris kifejezések speciális elemei, amelyek lehetővé teszik részkifejezések csoportosítását és rögzítését későbbi felhasználás céljából. Nézzük meg, hogyan működnek a csoportok és a rögzítések:

( ) (zárójel)

A zárójelek az Csoportosítani szoktak részkifejezések egy reguláris kifejezésben. Például a reguláris kifejezés /(d{2})-(d{2})-(d{4})/ se randevúzásra használtak "nn-hh-éééé" formátumban. A csoportok ( ) Lehetővé teszik, hogy külön rögzítsük a nap, a hónap és az év értékeket.

\1, \2, \3 (csoporthivatkozások)

A csoporthivatkozások egy reguláris kifejezésben korábban rögzített csoportokra hivatkoznak. Például a reguláris kifejezés /(\w+) \1/ minden olyan szóra illeszkedik, amelyet ugyanaz a szó követ. Például: „hello hello”, „world world” stb.

?: (nem rögzítő csoport)

A szimbólum ?: Nem rögzítő csoportok létrehozására szolgál. Ezeket a csoportokat akkor használjuk, ha részkifejezéseket szeretnénk csoportosítani, de nem akarjuk rögzíteni az eredményt. Például a reguláris kifejezés /https?:\/\/(?:www\.)?google\.com/ egyezni fog a „http://www.google.com” és a „https://google.com” címmel is, de csak az URL megfelelő részét fogja rögzíteni.

A csoportok és a rögzítések lehetővé teszik számunkra, hogy a reguláris kifejezéseinket hatékonyabb és olvashatóbb módon strukturáljuk és rendszerezzük. Lehetővé teszik továbbá adott értékek rögzítését későbbi felhasználásra az alkalmazásainkban.

Hasznos módszerek a reguláris kifejezésekkel való munkavégzéshez

A JavaScript számos hasznos módszert kínál a reguláris kifejezésekkel való munkavégzéshez. Ezek a módszerek lehetővé teszik számunkra, hogy általános műveleteket hajtsunk végre, például szöveges karakterláncok keresését, cseréjét és felosztását reguláris kifejezések használatával. Nézzünk néhány ilyen módszert:

mérkőzés()

A módszer match() A reguláris kifejezés összes egyezésének megkeresésére szolgál egy szöveges karakterláncban, és egy tömböt ad vissza az eredményekkel. Például:

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

Ebben a példában a módszert alkalmaztuk match() hogy megtalálja a reguláris kifejezés összes egyezését /o/g a "Hello, world!" A módszer match() egy tömböt ad vissza az összes talált egyezéssel.

  SOLID a programozásban: átfogó útmutató példákkal és gyakorlati tippekkel

cserélje ()

A módszer replace() arra szolgál, hogy egy szöveges karakterláncban lévő reguláris kifejezések egyezéseit új értékre cserélje. Például:

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

Ebben a példában a módszert alkalmaztuk replace() a reguláris kifejezés egyezésének helyettesítésére /mundo/ a "Hello, world!" a "barát" szóra. A módszer replace() egy új szöveges karakterláncot ad vissza a végrehajtott helyettesítésekkel.

hasított ()

A módszer split() egy szöveges karakterlánc részkarakterláncok tömbjére való felosztására szolgál, reguláris kifejezést használva elválasztóként. Például:

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

Ebben a példában a módszert alkalmaztuk split() a "Hello,world,barátom" szöveges karakterlánc felosztása részkarakterláncok tömbjére a reguláris kifejezés használatával /,/g mint elválasztó. A módszer split() egy tömböt ad vissza a kapott részkarakterláncokkal.

teszt()

A módszer test() Annak ellenőrzésére szolgál, hogy egy reguláris kifejezésnek van-e egyezése egy szöveges karakterláncban. A metódus visszatér true ha van egyezés és false egyébként. Például:

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

Ebben a példában a módszert alkalmaztuk test() annak ellenőrzésére, hogy a reguláris kifejezés /mundo/ van egyezése a "Hello, world!" szövegben. A módszer test() Hozd vissza true mert van egy véletlen.

Ez csak néhány a JavaScript reguláris kifejezéseivel való munkavégzés leggyakoribb módszerei közül. Ezen módszerek mindegyikének megvan a maga célja, és az Ön egyedi igényei szerint használható. Kísérletezzen velük, és fedezze fel, hogyan tehetik könnyebbé és gyorsabbá a reguláris kifejezésekkel végzett munkát.

Preguntas frecuentes

Mik azok a reguláris kifejezések a JavaScriptben? A JavaScriptben a reguláris kifejezések keresési minták, amelyek karakterláncokban lévő szöveg keresésére és manipulálására szolgálnak.

Hogyan lehet reguláris kifejezéseket létrehozni JavaScriptben? A JavaScript reguláris kifejezései az osztály használatával jönnek létre RegExp vagy a literál használatával /patrón/.

Mi a különbség a módosítók és a jelzők között a reguláris kifejezésekben? A módosítók a reguláris kifejezés végére kerülnek, és módosítják a viselkedését. A jelzők a második perjel után kerülnek hozzáadásra, amikor reguláris kifejezést hoz létre az osztály használatával RegExp.

Mi a különbség a módszer között match() és a módszer test()? A módszer match() Egy szöveges karakterláncban lévő reguláris kifejezés összes egyezésének megkeresésére szolgál, és egy tömböt ad vissza az eredményekkel. A módszer test() Annak ellenőrzésére szolgál, hogy egy reguláris kifejezésnek van-e egyezése egy szöveges karakterláncban, és logikai értéket ad vissza.

Hogyan rögzíthetek meghatározott értékeket csoportok használatával egy reguláris kifejezésben? A csoportok ( ) egy reguláris kifejezésben lehetővé teszi bizonyos részkifejezések rögzítését. Ezután a hivatkozások segítségével hivatkozhat ezekre a csoportokra \1, \2Stb

Milyen módszerekkel dolgozhatok reguláris kifejezésekkel JavaScriptben? Néhány hasznos módszer a JavaScript reguláris kifejezéseivel való munkavégzéshez match(), replace(), split() y test(). Ezen módszerek mindegyikének megvan a maga célja, és az Ön egyedi igényei szerint használható.

Következtetés

A reguláris kifejezések hatékony eszközök a szöveggel való JavaScript-munkához. A reguláris kifejezések alapjainak , szintaxisának és haladó technikáinak megértése lehetővé teszi, hogy hatékonyan és pontosan keress, cserélj és manipulálj szöveges karakterláncokat. Az alapvető egyeztetéstől a módosítók, csoportok és más hasznos módszerek használatáig megtanultad, hogyan hozhatod ki a legtöbbet a reguláris kifejezésekből a JavaScript-projekteidben.

Ne felejtsen el gyakorolni és kísérletezni a különböző mintákkal, és eseteket használni, hogy erősítse a reguláris kifejezések megértését és ismeretét. Ne habozzon reguláris kifejezésekkel javítani kódja hatékonyságán és minőségén!