Command Palette

Search for a command to run...

Anclas: ^, $ y \\b en Expresiones Regulares

Define posiciones específicas donde debe ocurrir una coincidencia: inicio, fin o límites de palabra para búsquedas más precisas.

Lectura: 10 min
Nivel: Principiante

TL;DR - Resumen rápido

  • Las anclas definen posiciones en el string, no caracteres
  • ^ coincide con el inicio del string (o de cada línea con flag m)
  • $ coincide con el final del string (o de cada línea con flag m)
  • \b coincide con límites de palabra (inicio o fin de palabra)
  • \B coincide donde NO hay límite de palabra
  • Las anclas son esenciales para validación y búsqueda precisa

Introducción a las Anclas

Las anclas (o anchors) son metacaracteres especiales que definen posiciones específicas en el string donde debe ocurrir una coincidencia. A diferencia de los caracteres normales que coinciden con caracteres específicos, las anclas coinciden con POSICIONES: inicio, fin o límites de palabra. Esto te permite crear patrones de búsqueda más precisos y eficientes.

Las anclas principales en JavaScript son: ^ (inicio), $ (fin), \b (límite de palabra) y \B (no límite de palabra). Comprender cómo funcionan estas anclas es fundamental para la validación de formularios, búsqueda de texto y procesamiento de datos.

  • ^ coincide con el inicio del string (o de cada línea con flag m)
  • $ coincide con el final del string (o de cada línea con flag m)
  • \b coincide con límites de palabra (entre \w y \W)
  • \B coincide donde NO hay límite de palabra
  • Las anclas no consumen caracteres, solo verifican posición

Las anclas no consumen caracteres

Las anclas son aserciones de longitud cero: verifican una posición pero no consumen caracteres. Por ejemplo, ^a verifica que esté al inicio y luego coincide con 'a', pero el '^' no consume ningún carácter.

Ancla ^ (Inicio)

El ancla ^ coincide con el inicio del string. Sin el flag multiline, solo coincide al inicio absoluto del string. Con el flag 'm', ^ coincide con el inicio de CADA línea. Esta ancla es esencial para validar que un string comience con un patrón específico.

Uso Básico de ^

El ancla ^ asegura que el patrón coincida solo al inicio del string. Esto es útil para validar prefijos, protocolos de URL y formatos que deben comenzar de una manera específica.

ancla-inicio-basico.js
Loading code...

El ejemplo muestra cómo validar que un string comience con un patrón específico. El ancla ^ asegura que la coincidencia solo ocurra al inicio del string, rejectando strings que contengan el patrón en otra posición.

Ancla ^ con Flag Multiline

Con el flag 'm', el ancla ^ coincide con el inicio de CADA línea del string, no solo con el inicio absoluto. Esto permite validar o procesar cada línea individualmente de un texto multilínea.

ancla-inicio-multiline.js
Loading code...

Con el flag 'm', ^ coincide al inicio de cada línea, permitiendo encontrar todas las líneas que comienzan con un patrón específico. Sin el flag, ^ solo coincidiría con la primera línea.

Mejor práctica para validación

Para validar que un string comience con un patrón, usa ^patron$. Esto asegura que el string completo coincida con el patrón, no solo que contenga el patrón en alguna posición.

Ancla $ (Fin)

El ancla $ coincide con el final del string. Sin el flag multiline, solo coincide al final absoluto del string. Con el flag 'm', $ coincide con el final de CADA línea. Esta ancla es esencial para validar que un string termine con un patrón específico.

Uso Básico de $

El ancla $ asegura que el patrón coincida solo al final del string. Esto es útil para validar extensiones de archivo, dominios de email y formatos que deben terminar de una manera específica.

ancla-fin-basico.js
Loading code...

El ejemplo muestra cómo validar que un string termine con un patrón específico. El ancla $ asegura que la coincidencia solo ocurra al final del string, rejectando strings que contengan el patrón en otra posición.

Ancla $ con Flag Multiline

Con el flag 'm', el ancla $ coincide con el final de CADA línea del string, no solo con el final absoluto. Esto permite validar o procesar cada línea individualmente de un texto multilínea.

ancla-fin-multiline.js
Loading code...

Con el flag 'm', $ coincide al final de cada línea, permitiendo encontrar todas las líneas que terminan con un patrón específico. Sin el flag, $ solo coincidiría con la última línea.

Advertencia: $ y saltos de línea

El ancla $ coincide justo antes del salto de línea, no después. Un string que termina con "texto\n" coincide con /texto$/porque $ está justo antes de \n. Para coincidir exactamente al final sin saltos, usa /texto\z/ (si tu motor lo soporta).

Ancla \\b (Límite de Palabra)

El ancla \b coincide con un límite de palabra: la posición entre un carácter de palabra (\w) y un carácter que no es de palabra (\W), o al inicio/fin del string. Esta ancla es esencial para buscar palabras completas sin coincidir con subcadenas dentro de otras palabras.

Uso Básico de \\b

El ancla \b permite buscar palabras completas sin coincidir con partes de otras palabras. Por ejemplo, buscar "hola" con \b no encontrará "hola" dentro de "holanda".

ancla-limite-basico.js
Loading code...

El ejemplo muestra cómo buscar palabras completas usando \b. Sin \b, la búsqueda encontraría "hola" dentro de "holanda". Con \b, solo encuentra la palabra completa "hola" cuando está separada por límites de palabra.

Casos de Uso de \\b

El ancla \b es útil en muchos escenarios: validación de palabras, búsqueda de términos específicos y extracción de palabras completas de texto.

ancla-limite-casos-uso.js
Loading code...

Este ejemplo muestra varios usos de \b: buscar palabras completas, validar que un string sea una sola palabra y extraer palabras de texto. El ancla \b es esencial para búsquedas precisas de palabras.

¿Qué es un límite de palabra?

Un límite de palabra (\b) ocurre donde un carácter de palabra (\w = [a-zA-Z0-9_]) está junto a un carácter que no es de palabra (\W = [^a-zA-Z0-9_]), o al inicio/fin del string. Por ejemplo, en "hola mundo", hay un \b antes de 'h', después de 'a', antes de 'm' y después de 'o'.

Ancla \\B (No Límite de Palabra)

El ancla \B es lo opuesto de \b: coincide donde NO hay un límite de palabra. Es decir, coincide en posiciones donde ambos caracteres adyacentes son caracteres de palabra (\w) o ambos no son de palabra (\W). Esta ancla es útil para encontrar subcadenas dentro de palabras.

Uso Básico de \\B

El ancla \B permite encontrar subcadenas dentro de palabras. Por ejemplo, buscar "an" con \B encontrará "an" dentro de "andar" pero no "an" como palabra independiente.

ancla-no-limite-basico.js
Loading code...

El ejemplo muestra cómo usar \B para encontrar subcadenas dentro de palabras. \B coincide donde NO hay límite de palabra, permitiendo encontrar "an" dentro de "andar" pero no "an" como palabra completa.

Casos de Uso de \\B

El ancla \B es útil para encontrar patrones que deben estar dentro de palabras, no como palabras independientes. Esto es especialmente útil para validación de contraseñas y búsqueda de prefijos/sufijos.

ancla-no-limite-casos-uso.js
Loading code...

Este ejemplo muestra cómo usar \B para encontrar patrones dentro de palabras. \B asegura que el patrón esté rodeado de caracteres de palabra, no en límites de palabra.

Mejor práctica: \\b vs \\B

Usa \b para buscar palabras completas y \B para buscar subcadenas dentro de palabras. Por ejemplo, /\ban\b/ busca la palabra "an", mientras /\Ban\B/ busca "an" dentro de palabras como "andar", "bandera", etc.

Combinando Anclas

Puedes combinar múltiples anclas en un solo patrón para crear validaciones más precisas. Por ejemplo, ^...$ valida que el string completo coincida con el patrón, y \b...\b valida que sea una palabra completa. Combinar anclas te permite crear patrones de validación muy específicos.

Validación Completa con ^ y $

Combinar ^ y $ permite validar que el string completo coincida con el patrón, no solo que contenga el patrón. Esto es esencial para validación de formularios y datos de entrada.

anclas-combinadas.js
Loading code...

El ejemplo muestra cómo combinar ^ y $ para validar el string completo. El patrón ^\d+$ valida que el string contenga solo dígitos del inicio al final, rejectando strings con otros caracteres.

Combinación común: ^...$

La combinación ^...$ es el patrón más común para validación. Asegura que el string completo coincida con el patrón. Por ejemplo,/^\d4-\d4-\d4-\d4$/ valida un formato de tarjeta de crédito completo.

Resumen: Anclas de Regex

Conceptos principales:

  • Las anclas definen posiciones, no consumen caracteres
  • ^ coincide con el inicio del string (o de cada línea con flag m)
  • $ coincide con el final del string (o de cada línea con flag m)
  • \b coincide con límites de palabra (entre \w y \W)
  • \B coincide donde NO hay límite de palabra
  • Las anclas son aserciones de longitud cero

Mejores prácticas:

  • Usa ^...$ para validar el string completo
  • Usa \b para buscar palabras completas
  • Usa \B para buscar subcadenas dentro de palabras
  • Combina anclas con flags m para procesamiento multilínea
  • Recuerda que las anclas no consumen caracteres
  • Usa \b en búsquedas para evitar falsos positivos