Modulelessen (4/4)
Unicode-eigenschap ontsnapt
De klassen \w, \d, \s in ASCII zijn niet voldoende voor Italiaans, Frans, Grieks
of emoji-tekst. Moderne JavaScript (met de vlag u -- Unicode) biedt
property escapes \p{...}: semantische klassen gebaseerd op Unicode
eigenschappen van karakters.
Pattern: \p{L}+ (with flag u)
Sample: Ciao caffe' \u00fcber \u4e16\u754c
^^^^ ^^^^^^^ ^^^^ ^^^^\p{L} = "elke letter (Unicode)": bevat letters met accenten, Chinees
ideogrammen, Cyrillisch, Grieks\u2026 alles. De meest voorkomende:
\p{L}-- letter (van elk alfabet).\p{N}-- nummer (Arabische cijfers, Romeins, Indiaas\u2026).\p{P}-- leestekens.\p{S}-- symbool (wiskundig, valuta, emoji\u2026).\p{Z}-- spatie/scheidingsteken.\p{Script=Latin}-- specifiek het Latijnse alfabet.\p{Script=Greek}-- het Griekse alfabet. En zo verder.
En de geweigerde versies \P{L}, \P{N}, \u2026
Verschil met \w en \d
\\w matches [A-Za-z0-9_] -- ASCII only, no "caffe'"
\\p{L}\\p{N}_ with flag u -- includes accented charactersVoor een robuuste parser van Italiaanse tekst, verkies \p{L} boven \w:
citta', perche', andro' komen correct overeen als woorden.
Unicode-eigenschappen en browsercompatibiliteit
Unicode-eigenschappen zoals \\p{L} (Letters) of \\p{Script=Latin} breiden klassen uit naar internationale alfabetten. In JavaScript vereisen ze strikt de vlag u (of v), anders genereert de engine een syntaxisfout.
Probeer het
Vind elk woord, inclusief woorden met accenten (citta', perche', e' \u2026). Gebruik de eigenschap escape \\p{L} met vlag u.
Toon hint
Vervang \\w+ door \\p{L}+ en voeg de vlag u toe (naast g).
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Zoek elk Unicode-symbool (valuta, wiskunde, emoji) in de tekst, met uitzondering van letters en cijfers.
Toon hint
\\p{S} komt overeen met de symboolcategorie van Unicode. Denk aan de u-vlag.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Vind alle woorden die uit Cyrillische letters bestaan met behulp van `\p{Script=Cyrillisch}`.
Toon hint
Gebruik \\p{Script=Cyrillisch} met de + kwantor en de u-vlag.
Oplossing beschikbaar na 3 pogingen