Lecciones del módulo (4/4)
Unicode property escapes
Las clases \w, \d, \s en ASCII no son suficientes para textos en español, francés, griego o con emojis. El JavaScript moderno (con la flag u -- Unicode) ofrece escapes de propiedades \p{...}: clases semánticas basadas en las propiedades Unicode de los caracteres.
Pattern: \p{L}+ (con flag u)
Sample: Ciao caffe' über世界
^^^^ ^^^^^^^ ^^^^ ^^^^\p{L} = "cualquier Letra (Unicode)": incluye letras acentuadas, ideogramas chinos, cirílico, griego... todo. Las más comunes:
\p{L}-- letra (de cualquier alfabeto).\p{N}-- número (dígitos arábigos, romanos, indios...).\p{P}-- puntuación.\p{S}-- símbolo (matemático, moneda, emoji...).\p{Z}-- espacio/separador.\p{Script=Latin}-- específicamente el alfabeto latino.\p{Script=Greek}-- el alfabeto griego. Y así sucesivamente.
Y las versiones negadas \P{L}, \P{N}, ...
Diferencia con \w y \d
\w coincide con [A-Za-z0-9_] -- solo ASCII, no coincide con "caffe'"
\p{L}\p{N}_ con flag u -- incluye caracteres acentuadosPara un analizador robusto de texto en español, prefiere \p{L} en lugar de \w:
canción, café, mañana coinciden correctamente como palabras.
Propiedades Unicode y compatibilidad del navegador
Las propiedades Unicode como \\p{L} (Letras) o \\p{Script=Latin} extienden las clases a alfabetos internacionales. En JavaScript, requieren estrictamente la flag u (o v), de lo contrario el motor lanza un error de sintaxis.
Pruébalo tú
Encuentra cada palabra, incluidas aquellas con acentos (citta', perche', e' …). Usa el escape de propiedad \p{L} con la flag u.
Mostrar pista
Reemplaza \w+ por \p{L}+ y añade la flag u (además de g).
Solución disponible después de 3 intentos
Ejercicio de repaso
Encuentra cada símbolo Unicode (monedas, matemáticas, emojis) en el texto, excluyendo letras y dígitos.
Mostrar pista
\p{S} coincide con la categoría Symbol de Unicode. Recuerda la flag u.
Solución disponible después de 3 intentos
Desafío adicional
Encuentra todas las palabras que consistan en letras del alfabeto cirílico usando `p{Script=Cyrillic}`.
Mostrar pista
Usa \p{Script=Cyrillic} con el cuantificador + y la flag u.
Solución disponible después de 3 intentos