Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A reguláris kifejezések, közismert nevén "regex" vagy "regexp", olyan karakterláncok, amelyek egy keresési mintát írnak le. Szabályos kifejezések segítségével ellenőrizheti, hogy egy karakterlánc tartalmaz-e meghatározott mintát, információt nyerhet ki egy karakterláncból, és a karakterlánc egyes részeit új szöveggel cserélheti ki.

Ismerje meg a reguláris kifejezések alapvető szintaxisát és a JavaScriptben való használatukat.

A reguláris kifejezések alapvető szintaxisa

Kétféleképpen hozhat létre reguláris kifejezést JavaScriptben: reguláris kifejezés literál és a RegExp konstruktőr.

A reguláris kifejezés literál egy perjelek közé zárt mintából áll, amelyet egy opcionális jelző követ.

Például:

// Zászló nélkül
const regexpression_1 = /pattern/

// Zászlóval
const regexpression_2 = /pattern/zászló

A zászló egy opcionális paraméter, amelyet hozzáadhat egy reguláris kifejezéshez, hogy módosítsa annak viselkedését. Például:

instagram viewer
const regexFlag = /the/g;

A g A zászló azt jelzi, hogy a kifejezésnek minden előfordulással meg kell egyeznie, nem csak az elsővel.

A reguláris kifejezést a RegExp konstruktőr. Például:

const reguláris kifejezés = újRegExp("Minta", "g");

A RegExp A konstruktor két paramétert vesz fel: egy mintát – egy karakterláncot vagy egy reguláris kifejezés literált – és egy jelző(ke)t.

Két meglehetősen gyakori jelzőt használ a JavaScript reguláris kifejezéséhez:

  • g: A globális jelző azt teszi, hogy a reguláris kifejezés az adott karakterlánc összes mintájához illeszkedjen egyetlen előfordulás helyett.
  • én: A kis- és nagybetűket nem érzékeny jelző arra készteti a reguláris kifejezést, hogy figyelmen kívül hagyja a minta kis- és nagybetűit, és párosítsa a kis- és nagybetűket az adott karakterláncban.

A zászlókat egyetlen kifejezésben, bármilyen sorrendben együtt használhatja. Például:

const reguláris kifejezés = újRegExp("Minta", "GI");

Ez a kifejezés megfelel a „Minta” minden előfordulásának, az esettől függetlenül.

A reguláris kifejezésekben bizonyos karakterek, úgynevezett metakarakterek különleges jelentéssel bírnak. Használhatja őket bizonyos típusú karakterekhez vagy mintákhoz.

Íme néhány a leggyakrabban használt metakarakterek és jelentésük:

  • A helyettesítő karakter (.): Ez a karakter bármelyik karakterrel megegyezik, kivéve egy új sort. Hasznos eszköz a minták és az ismeretlen karakterek párosítására.
  • A Kleene csillag (*): Ez a karakter az előző karakter vagy csoport nulla vagy több előfordulásának felel meg. Lehetővé teszi, hogy az előző karakter vagy csoport tetszőleges számú alkalommal megjelenjen a karakterláncban, beleértve a nullát is.
  • Az opcionális karakter (?): Ez a karakter egy megelőző karakter vagy csoport nullával vagy egy előfordulásával egyezik meg.
  • Sor kezdete horgony (^): Ez a karakter csak egy sor vagy karakterlánc elejére egyezik.
  • Sorvégi horgony ($): Ez a karakter egy sor vagy karakterlánc végére egyezik.
  • Karakterkészlet/Osztály ([]): A karakterkészlet egy karaktersorozatban található karakterkészlet bármely karakterével megegyezik. Ezeket szögletes zárójelek segítségével határozhatja meg [] és megadhat rögzített karakterkészletet, speciális karaktereket vagy bizonyos karaktercsoportokat.
  • Váltakozó karakter (|): Ez a karakter megegyezik az előző vagy a következő karakterrel vagy csoporttal. Hasonlóan működik, mint az OR JavaScript operátor.
  • Csoportosító karakter (()): A csoportosító karakter lehetővé teszi karakterek vagy részkifejezések csoportosítását, operátorok egységként történő alkalmazását, és a műveletek sorrendjének szabályozását.

Karakterlánc tesztelése reguláris kifejezéssel szemben a JavaScriptben

A JavaScriptben többféle módszerrel tesztelhet egy karakterláncot egy reguláris kifejezéssel.

Ez a rész feltételezi, hogy rendelkezik alapvető ismeretekkel a reguláris kifejezésekről és mintákról. Ha kényelmetlen a reguláris kifejezések használata, nézze meg kezdőknek szóló útmutató a reguláris kifejezésekhez első.

A vizsgálati módszer

A .teszt() A metódus logikai értéket ad vissza, jelezve, hogy a reguláris kifejezés egyezik-e a karakterlánccal vagy sem. Ez a metódus egy karakterláncot vesz igénybe a kereséshez argumentumként. Különösen hasznos az egyszerű ellenőrzéseknél.

Például:

hagyja regex = /.com$/;
hagyja str = "example.com";
konzol.log (regex.test (str)); // igaz

Ez a reguláris kifejezés megegyezik egy „.com”-ra végződő karakterlánccal.

A végrehajtási módszer

A .exec() metódus egy tömböt ad vissza, amely tartalmazza az egyező szöveget és a rögzített csoportokat vagy nulla ha nem talál megfelelőt. Ez a metódus egy karakterláncot vesz igénybe a kereséshez argumentumként. Komplexebb reguláris kifejezéseknél hasznos.

Például:

hagyja regex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
hagyja str = "123-456-7890";
hagyja eredmény = regex.exec (str);

ha (eredmény !== nulla) {
konzol.log(`${eredmény[0]} egy érvényes telefonszám".);
} más {
konzol.log("Érvénytelen telefonszám");
}

A fenti reguláris kifejezés megegyezik egy karakterlánccal, amely nem kötelező "" karakterrel kezdődik(", három számjegy és egy opcionális ")". Ezután keres egy opcionális "-", ".", vagy szóköz, amelyet három számjegy követ. Végre keres egy opcionális "-", ".", vagy szóköz, amelyet négy számjegy követ a karakterlánc végén.

Ez a reguláris kifejezés megfelel a „(xxx) xxx-xxxx”, „xxx-xxx-xxxx”, „xxx.xxx.xxxx” vagy „xxx xxx xxxx” formátumú telefonszámoknak.

Ha talál egyezést, .exec() egy tömböt ad vissza, amely tartalmazza az egyező szöveget és a rögzített csoportokat (zárójelben definiálva). Minden csoportot további elemként tartalmaz a visszaadott tömbben. Ez lehetővé teszi az egyező szöveg bizonyos részeihez való hozzáférést, ami segíthet információt kinyerni egy karakterláncból.

A csere módszer

A .replace() metódus egyezést keres egy reguláris kifejezés és egy karakterlánc között, és lecseréli az egyező szöveget egy megadott helyettesítő szövegre. Ez a karakterlánc objektumok módszere, és argumentumként egy reguláris kifejezést és egy helyettesítő karakterláncot vesz fel.

Például:

hagyja karakterlánc = – A gyors barna róka átugrik a lusta kutyán.;
hagyja kifejezés = /The/gi;
hagyja newString = string.replace (kifejezés, "a");
konzol.log (newString); // "egy gyors barna róka átugrik egy lusta kutyán."

Ez a példa a csere() módszer a húr változó, átadja a reguláris kifejezést, kifejezés. A reguláris kifejezés a karakterláncban szereplő „The” minden előfordulásával megegyezik, a kis- és nagybetűktől függetlenül. A csere metódus hívása arra utasítja, hogy minden előfordulást az „a” karakterláncra cseréljen.

Teljesítménnyel kapcsolatos szempontok reguláris kifejezések használatakor

Bár a reguláris kifejezések segítenek a karakterláncok egyeztetésében és kezelésében, a teljesítmény szempontjából költségesek is lehetnek. A minták lehető legspecifikusabbá tétele és egyszerűsége létfontosságú a teljesítményük megőrzéséhez.