Tema 6 · Anclas

6. Anclas (^, $) y Límites de Palabra (\b, \B)

Fijar el inicio ^ y fin $ de strings y líneas. Uso de \b para aislar palabras completas y evitar coincidencias accidentales.

¿Qué son las Anclas? (Aserciones de Posición)

Las anclas no consumen ningún carácter de la cadena; en cambio, comprueban una posición geométrica o contexto de frontera dentro del texto.

  • ^ (Inicio): Exige que la coincidencia empiece en el primer carácter de la cadena (o al inicio de una línea si se usa la bandera /m).
  • $ (Fin): Exige que la coincidencia termine en el último carácter de la cadena (o al final de una línea con /m).
💡 Regla de Seguridad para Formularios: Sin ^ y $, tu validador aceptará inyecciones parciales. Por ejemplo, /[0-9]{4}/ aceptará "texto 2026 peligroso", mientras que /^[0-9]{4}$/ aceptará única y exclusivamente "2026".

Límites de Palabra: \b y \B

El metarácter \b (word boundary) representa la frontera invisible entre un carácter de palabra (\w) y un carácter de no-palabra (\W, espacios, signos o el límite de la cadena).

  • /\bjava\b/i: Coincide con la palabra "Java" o "java", pero no con "JavaScript" ni con "pajavamo".
  • /\Bcat\b/: Exige que "cat" no tenga frontera al inicio, por lo que coincidirá con "tomcat" o "bobcat", pero no con "cat".

⚡ Búsqueda de Palabras Aisladas y Validación Estricta

Distingue palabras completas con \b y asegura validaciones completas de extremo a extremo usando ^ y $.

anclas-limites.js
Solo lectura
// 1. El peligro de olvidar las anclas de inicio (^) y fin ($)
const validadorPinInseguro = /\d{4}/;
const validadorPinSeguro   = /^\d{4}$/;

const intentoAtaque = "PIN: 1234; DROP TABLE usuarios;";

console.log("--- 1. Validación Estricta con ^ y $ ---");
console.log("¿Pasa validador inseguro?", validadorPinInseguro.test(intentoAtaque)); // true (¡Peligro!)
console.log("¿Pasa validador seguro?  ", validadorPinSeguro.test(intentoAtaque));   // false (Correcto)

// 2. Aislamiento de palabras exactas con \b
console.log("\n--- 2. Búsqueda con Límites de Palabra (\\b) ---");
const lenguajes = "Java, JavaScript, TypeScript, JavaEE, Python";

const regexSinLimites = /Java/g;
const regexConLimites = /\bJava\b/g;

console.log("Coincidencias sin \\b (captura prefijos indeseados):");
console.log(lenguajes.match(regexSinLimites)); // ["Java", "Java", "Java"]

console.log("\nCoincidencias con \\b (solo la tecnología exacta):");
console.log(lenguajes.match(regexConLimites)); // ["Java"]

// 3. Reemplazo seguro de palabras clave
const textoArticulo = "El gato persa y el gato montés jugaban con el pescador.";
const textoModificado = textoArticulo.replace(/\bgato\b/g, "felino");
console.log("\n--- 3. Sustitución Segura ---");
console.log(textoModificado);
Pruébalo tú mismo » Se abre en una nueva pestaña con ejecución en vivo
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿Con cuál de las siguientes cadenas coincidirá la expresión /\bauto\b/i?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Regex en JavaScript: Expresiones Regulares & RegExp y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.