Lecciones del módulo (1/4)
Todos los flags en detalle
Resumen completo de todas las flags disponibles en JavaScript moderno (ES2024). Una flag es un carácter único que modifica el comportamiento de la regex; se pueden combinar en cualquier orden.
| Flag | Nombre | Efecto |
|---|---|---|
g | Global | Busca todas las coincidencias, no solo la primera (requerido para matchAll). |
i | Ignore case | Insensible a mayúsculas y minúsculas (incluyendo caracteres Unicode con la flag u/v). |
m | Multiline | ^ y $ coinciden con el inicio/fin de una línea, no solo de todo el texto. |
s | Dot all | El . también coincide con el salto de línea \n. |
u | Unicode | Manejo correcto de puntos de código > 0xFFFF y permite \\p{...}. |
v | Unicode v-mode | Extensión moderna de u con operaciones de conjuntos ([abc&&[def]]). |
y | Sticky | Coincide solo a partir de la posición lastIndex, sin saltarse nada. |
d | Has indices | El resultado incluye indices con el inicio/fin de cada grupo. |
const re = /foo/gimu; // global + insensible + multiline + unicode
re.flags; // "gimu" (siempre en orden canónico: dgimsuvy)Combinaciones típicas
g+i-- "busca todo, insensible a mayúsculas". 80% de los usos prácticos.g+m-- para buscar línea por línea en texto multilinea.g+s-- "el punto coincide con cualquier cosa, incluidos los saltos de línea". Útil para extraer bloques que ocupan varias líneas.u(ov) -- siempre si estás tratando con texto del mundo real en cualquier idioma o emojis.
Unicode v-mode y evolución de las flags
La flag v (disponible en ES2024) reemplaza a u y permite operaciones avanzadas en conjuntos, como la intersección y sustracción de clases de caracteres (ej. [\\p{White_Space}&&\\p{ASCII}]).
Pruébalo tú
Encuentra todas las ocurrencias de 'ciao' independientemente de las mayúsculas/minúsculas. Usa la flag correcta.
Mostrar pista
Añade la flag i (case-insensitive) junto a g.
Solución disponible después de 3 intentos
Ejercicio de repaso
Encuentra un bloque entre `<pre>` y `</pre>` incluso si contiene saltos de línea. Debes usar la flag que hace que el punto también coincida con saltos de línea.
Mostrar pista
Añade la flag s para que . también coincida con saltos de línea, y usa el cuantificador lazy .+? para detenerte en el primer </pre>.
Solución disponible después de 3 intentos
Desafío adicional
Coincide con secuencias de caracteres ASCII, excluyendo explícitamente los dígitos, utilizando las propiedades de Unicode v-mode (flag `v`) y la sintaxis de sustracción de conjuntos `[\p{ASCII}--\p{Nd}]+`.
Mostrar pista
Usa la flag v y escribe la sustracción de conjuntos [\p{ASCII}--\p{Nd}]+ para excluir los números.
Solución disponible después de 3 intentos