Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
app.js
Tab = 4 espacios
1
// 1. Patrón Canónico de Contraseña Fuerte con Múltiples Lookaheads
// Reglas requeridas (en cualquier posición):
// - Al menos una letra minúscula: (?=.*[a-z])
// - Al menos una letra mayúscula: (?=.*[A-Z])
// - Al menos un dígito: (?=.*\d)
// - Al menos un símbolo especial: (?=.*[!@#$%^&*])
// - Longitud mínima de 8 caracteres: .{8,}
const patronPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}$/;

const contraseñasPrueba = [
  "password123",        // Falta mayúscula y símbolo
  "Password123",        // Falta símbolo
  "P@ssword123",        // ✔ Cumple todas las reglas
  "Ab1!",               // Muy corta (< 8)
  "K!lopolis2026Secure" // ✔ Excelente
];

console.log("--- 1. Validación de Contraseñas con Lookahead ---");
contraseñasPrueba.forEach(pass => {
  console.log(`${pass.padEnd(20)} => ${patronPassword.test(pass) ? "✔ Fuerte" : "❌ Débil"}`);
});

// 2. Extracción de Precios con Lookbehind Positivo (?<=...)
console.log("\n--- 2. Extracción de Precios Limpios con Lookbehind ---");
const factura = "Servicio: $150.00 USD, Descuento: $20.00 USD, Total: $130.00 USD";

// Coincide con números decimales solo si tienen el símbolo '$' inmediatamente antes
const regexPrecio = /(?<=\$)\d+(?:\.\d{2})?/g;
const preciosLimpios = factura.match(regexPrecio);

console.log("Valores numéricos puros (sin el símbolo $):");
console.log(preciosLimpios); // ["150.00", "20.00", "130.00"]
Haz clic para editar este código
Vista Previa
Consola Virtual JavaScript