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!