Saltar al contenido

Entendiendo Unicode en JavaScript: banderas y clases

Introducción a Unicode

JavaScript admite Unicode, un estándar de codificación de caracteres que permite la representación de texto de múltiples idiomas y sistemas de escritura. Unicode es esencial para desarrollar aplicaciones internacionalizadas y manejar eficazmente datos de texto diversos. En este capítulo, exploraremos las banderas y clases Unicode en JavaScript, examinando su uso y proporcionando ejemplos prácticos para mejorar tu comprensión.

La bandera Unicode u

La bandera u permite la coincidencia completa de Unicode en expresiones regulares. Al usar esta bandera, JavaScript trata el patrón como compatible con Unicode, lo que le permite reconocer caracteres más allá del Plano Multilingüe Básico (BMP). Esta bandera es especialmente útil al trabajar con caracteres como los emojis, que se encuentran fuera del BMP.

Uso de la bandera u


Output appears here after Run.

En este ejemplo, \uD83D\uDC4D representa un carácter Unicode. Sin la bandera u, la regex a.b no reconoce el carácter correctamente y no coincide. Con la bandera u, la regex coincide correctamente con la secuencia, reconociendo el carácter Unicode.

Combinación de la bandera u con otras banderas


Output appears here after Run.

Este ejemplo demuestra la combinación de la bandera u con las banderas global (g) y sensible a mayúsculas/minúsculas (i). La regex coincide correctamente con A\uD83D\uDC4Db, ilustrando cómo la bandera u puede usarse con otras banderas para una coincidencia más flexible.

Escapes de propiedades Unicode: \p{} y \P{}

Los escapes de propiedades Unicode ofrecen una forma de hacer coincidir caracteres según sus propiedades Unicode. Esta característica, introducida en ECMAScript 2018, facilita el trabajo con tipos específicos de caracteres.

Sintaxis de los escapes de propiedades Unicode

  • \p{Property=Value}: Coincide con caracteres que tienen la propiedad especificada.
  • \P{Property=Value}: Coincide con caracteres que no tienen la propiedad especificada.

Propiedades Unicode comunes

  1. Categoría general: Coincide con caracteres según su categoría general.
    • \p{L}: Coincide con cualquier letra.
    • \p{N}: Coincide con cualquier número.
  2. Script: Coincide con caracteres según su sistema de escritura.
    • \p{Script=Greek}: Coincide con caracteres griegos.
    • \p{Script=Han}: Coincide con caracteres Han (chino, japonés, coreano).

Ejemplos de escapes de propiedades Unicode


Output appears here after Run.

Aquí, \p{L} coincide con cualquier letra. La regex \p{L}+ encuentra todas las secuencias de letras en la cadena 'Hello123', devolviendo ["Hello"].


Output appears here after Run.

En este ejemplo, \p{N} coincide con cualquier número. La regex \p{N}+ extrae todas las secuencias de números de la cadena 'Hello123', dando como resultado ["123"].


Output appears here after Run.

Este ejemplo usa \p{Script=Greek} para coincidir con caracteres griegos. La regex coincide correctamente con la cadena griega 'αβγδε'.

WARNING

El uso de escapes de propiedades Unicode puede afectar el rendimiento, especialmente con grandes volúmenes de texto. Optimiza tus expresiones regulares y prueba su rendimiento en tu caso de uso específico.

Aplicaciones prácticas

Validación de la entrada del usuario

Los escapes de propiedades Unicode pueden validar la entrada del usuario con mayor precisión, garantizando que solo se acepten los caracteres permitidos.


Output appears here after Run.

Esta regex garantiza que un nombre de usuario válido comience con al menos dos letras, seguidas de cualquier combinación de letras y números. 'User123' supera la validación, mientras que '123User' no.

Extracción de caracteres específicos

Puedes extraer tipos específicos de caracteres de una cadena usando escapes de propiedades Unicode.


Output appears here after Run.

En este ejemplo, \p{L}+ coincide con todas las secuencias de letras en la cadena 'Hello, κόσμε!', devolviendo ["Hello", "κόσμε"].

INFO

Usa siempre la bandera u con los escapes de propiedades Unicode

Al usar escapes de propiedades Unicode, habilita siempre la bandera u para garantizar una coincidencia correcta. Sin esta bandera, los escapes de propiedades lanzarán un SyntaxError.


Output appears here after Run.

Conclusión

Comprender y utilizar Unicode en JavaScript es crucial para desarrollar aplicaciones robustas e internacionalizadas. Aprovechando la bandera u y los escapes de propiedades Unicode, puedes manejar datos de texto diversos de forma más eficaz y realizar coincidencias de caracteres precisas. Incorpora estas técnicas en tus proyectos para mejorar su funcionalidad y garantizar que cumplan con los estándares globales.

Practice

What does the 'u' flag in JavaScript regular expressions alter?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.