Digitális és informatikai

Magyar betűk regexben: az A–Z tartomány nem fedi le az ő és ű betűt

A latin ábécé alapbetűire írt karakterosztály nem azonos a Unicode összes betűjével. Magyar szövegnél a megengedett karakterek körét tudatosan kell meghatározni.

Dajka Gábor3 perc olvasás

Mit fogad el az egyszerű minta?

Az [A-Za-z]+ rész kizárólag a megadott angol alapbetű-tartományokra illeszkedik. Az „alma” megfelel, az „árvíz” ékezetes karakterei nem. Egy minta ettől még találhat részletet a szövegben, ezért a teljes mező elfogadását a találat határaival vagy teljes egyezést vizsgáló módszerrel kell ellenőrizni.

Unicode betűosztály JavaScriptben

Unicode-módban a \p{L} minden Unicode-betűt jelöl. Ez az ő és ű mellett más írásrendszerek betűit is elfogadja. A \p{M} a kombináló jeleket kezeli, amelyek egyes betűk összetett ábrázolásában szerepelhetnek. A megfelelő u vagy v mód és a futtatókörnyezet támogatása szükséges.

A névmező külön szerkesztési döntés

Egy név tartalmazhat szóközt, kötőjelet vagy aposztrófot. A „csak betű” szabály ezekre nem ad megoldást. Előbb írd le az üzleti célt: magyar betűs címkét, tetszőleges emberi nevet vagy technikai azonosítót fogadsz? Ezek eltérő mezők, eltérő megengedett készlettel.

Kis próbacsomag a tesztelőhöz

Vizsgáld külön az „alma”, „árvíz”, „Őrség”, „Kis-Nagy” és „東京” példát, valamint üres és sortöréses bemenetet. Írd oda minden esethez az elvárt eredményt. A teljes szöveg és a részlettalálat különbségét is nézd meg. Egy név alakjának elfogadása nem igazolja a név valóságát vagy a személy azonosságát. Ha kizárólag Unicode-betűkből álló, nem üres teljes szöveget vársz, az „alma”, „árvíz”, „Őrség” és „東京” elfogadható; a „Kis-Nagy”, az üres szöveg és a sortörést tartalmazó bemenet elutasítandó. A csak magyar betűket engedő szabály ettől eltérő elfogadási listát igényel.

Források

Tudáspróba

Válaszolj a három kérdésre, majd ellenőrizd a megoldókulcsot. Minden helyes válasz 1 pont.

1. Az [A-Za-z] tartalmazza az ő betűt?

  • A) Nem
  • B) Igen
  • C) Csak szó elején

2. Mit jelöl a Unicode \p{L}?

  • A) Csak magyar betűket
  • B) Csak számokat
  • C) Unicode-betűket több írásrendszerből

3. Miért teszteljük a Kis-Nagy alakot?

  • A) Mert biztosan hibás név
  • B) A kötőjel külön engedélyezési döntés
  • C) Mert nincs benne betű

Megoldókulcs és visszajelzés

1. A) Nem Az ő kívül esik a megadott ASCII betűtartományokon.

2. C) Unicode-betűket több írásrendszerből A betűkategória nem egy adott nyelvre korlátozott.

3. B) A kötőjel külön engedélyezési döntés A betűosztály önmagában a kötőjelet nem engedi meg.

Mit jelent az eredmény?

  • 3 pont: mindhárom ellenőrzött összefüggést helyesen alkalmaztad. Változtass meg egy bemeneti adatot a példában, és számold újra az eredményt.
  • 1–2 pont: a hibás válaszokhoz tartozó magyarázat alapján vezesd végig újra az érintett számítási lépést.
  • 0 pont: olvasd el újra a cikk levezetését, majd próbálkozz a kérdésekkel a megoldókulcs nélkül.

Hiányzó válasszal a próba még nincs lezárva. Ez a rövid önellenőrzés kizárólag a cikkben bemutatott összefüggésekre vonatkozik.

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás