Saltar al contenido principal
eLearner.app
Módulo 7 · Lección 1 de 425/32 en el curso~12 min
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.

FlagNombreEfecto
gGlobalBusca todas las coincidencias, no solo la primera (requerido para matchAll).
iIgnore caseInsensible a mayúsculas y minúsculas (incluyendo caracteres Unicode con la flag u/v).
mMultiline^ y $ coinciden con el inicio/fin de una línea, no solo de todo el texto.
sDot allEl . también coincide con el salto de línea \n.
uUnicodeManejo correcto de puntos de código > 0xFFFF y permite \\p{...}.
vUnicode v-modeExtensión moderna de u con operaciones de conjuntos ([abc&&[def]]).
yStickyCoincide solo a partir de la posición lastIndex, sin saltarse nada.
dHas indicesEl resultado incluye indices con el inicio/fin de cada grupo.
JS
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 (o v) -- 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ú

Ejercicio#regex.m7.l1.e1
Intentos: 0Cargando...

Encuentra todas las ocurrencias de 'ciao' independientemente de las mayúsculas/minúsculas. Usa la flag correcta.

Cargando editor...
Mostrar pista

Añade la flag i (case-insensitive) junto a g.

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#regex.m7.l1.e2
Intentos: 0Cargando...

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.

Cargando editor...
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

Ejercicio#regex.m7.l1.e3
Intentos: 0Cargando...

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}]+`.

Cargando editor...
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