Spojte písmena s diakritikou s regulárními výrazy

Regulární výrazy se používají pro různé úkoly, ale ten, který vidím nejčastěji, je ověřování vstupu. Jména, data, čísla...máme tendenci používat regulární výrazy pro všechno, i když bychom asi neměli.

Nejběžnější syntaxe pro kontrolu abecedních znaků je A-z ale co když řetězec obsahuje znaky s diakritikou? Znaky jako ğ a Ö způsobí selhání regulárního výrazu. To je místo, kde musíme použít unicode vlastnosti escape ke kontrole širšího formátu písmen!

Podívejme se, jak můžeme použít \p{Letter} a příznak Unicode (u ), aby odpovídaly standardním i diakritickým znakům:

// Single word
"Özil".match(/[\p{Letter}]+/gu)

// Word with spaces
"Oğuzhan Özyakup".match(/[\p{Letter}\s]+/gu);

Použití regulárních výrazů k ověření řetězců, zejména jmen, je mnohem obtížnější než A-z+ . Názvy a další řetězce mohou být velmi rozmanité – neurážejme uživatele tím, že je přimějeme poskytovat písmena bez přízvuku, jen aby prošli ověřením!