1
// 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);
Haz clic para editar este código