freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../regular-expressions/positive-and-negative-looka...

3.9 KiB

id title challengeType videoUrl localeTitle
587d7dba367417b2b2512ba9 Positive and Negative Lookahead 1 Lookahead positivo y negativo

Description

Lookaheads son patrones que le dicen a JavaScript que mire hacia adelante en tu cadena para buscar patrones más adelante. Esto puede ser útil cuando desea buscar múltiples patrones sobre la misma cadena. Hay dos tipos de lookaheads : positive lookahead y negative lookahead . Un positive lookahead mirará para asegurarse de que el elemento en el patrón de búsqueda esté allí, pero en realidad no lo coincidirá. Un lookahead positivo se usa como (?=...) donde ... es la parte requerida que no coincide. Por otro lado, un negative lookahead se verá para asegurarse de que el elemento en el patrón de búsqueda no esté allí. Un lookahead negativo se usa como (?!...) donde el ... es el patrón que no desea que esté allí. El resto del patrón se devuelve si la parte de búsqueda anticipada negativa no está presente. Lookaheads son un poco confusos, pero algunos ejemplos ayudarán.
let quit = "qu";
Deje que noquit = "qt";
vamos a quRegex = / q (? = u) /;
vamos a qRegex = / q (?! u) /;
quit.match (quRegex); // Devoluciones ["q"]
noquit.match (qRegex); // Devoluciones ["q"]
Un uso más práctico de lookaheads es marcar dos o más patrones en una cadena. Aquí hay un verificador de contraseña simple (ingenuamente) que busca entre 3 y 6 caracteres y al menos un número:
dejar contraseña = "abc123";
deje checkPass = / (? = \ w {3,6}) (? = \ D * \ d) /;
checkPass.test (contraseña); // Devuelve true

Instructions

Use lookaheads en el pwRegex para hacer coincidir las contraseñas que tienen más de 5 caracteres y tienen dos dígitos consecutivos.

Tests

tests:
  - text: Su expresión regular debe utilizar dos <code>lookaheads</code> positivos.
    testString: 'assert(pwRegex.source.match(/\(\?=.*?\)\(\?=.*?\)/) !== null, "Your regex should use two positive <code>lookaheads</code>.");'
  - text: Tu expresión regular no debe coincidir con <code>&quot;astronaut&quot;</code>
    testString: 'assert(!pwRegex.test("astronaut"), "Your regex should not match <code>"astronaut"</code>");'
  - text: Su expresión regular no debe coincidir con <code>&quot;airplanes&quot;</code>
    testString: 'assert(!pwRegex.test("airplanes"), "Your regex should not match <code>"airplanes"</code>");'
  - text: Tu expresión regular no debe coincidir con <code>&quot;banan1&quot;</code>
    testString: 'assert(!pwRegex.test("banan1"), "Your regex should not match <code>"banan1"</code>");'
  - text: Tu expresión regular debe coincidir con <code>&quot;bana12&quot;</code>
    testString: 'assert(pwRegex.test("bana12"), "Your regex should match <code>"bana12"</code>");'
  - text: Tu expresión regular debe coincidir con <code>&quot;abc123&quot;</code>
    testString: 'assert(pwRegex.test("abc123"), "Your regex should match <code>"abc123"</code>");'
  - text: Su expresión regular no debe coincidir con <code>&quot;123&quot;</code>
    testString: 'assert(!pwRegex.test("123"), "Your regex should not match <code>"123"</code>");'
  - text: Su expresión regular no debe coincidir con <code>&quot;1234&quot;</code>
    testString: 'assert(!pwRegex.test("1234"), "Your regex should not match <code>"1234"</code>");'

Challenge Seed

let sampleWord = "astronaut";
let pwRegex = /change/; // Change this line
let result = pwRegex.test(sampleWord);

Solution

// solution required