Cargando...

Expresiones regulares

Correr un patrón contra un texto es una expresión regular. La pregunta de /tea/ es si tea aparece. replace no reescribe el original: arma un texto nuevo y deja mint en ese hueco. Aquí note vale Order: tea, y la línea que se ve es true / Order: mint.

Antes se guardaba, ahora se busca

lida / mint / 2 cerró la página del mapa, y aquello era almacenamiento. En esta no hay huésped que guardar. Se busca dentro de una cadena. Si la búsqueda no halla nada, devuelve false o null, sin lanzar un error.

El patrón ya está sentado, o no está

/tea/.test("lemon") da false porque lemon no lleva el patrón. /tea/.test("mint tea") da true porque el patrón ya está dentro del texto. La bandera i aparta mayúsculas y minúsculas, así que /tea/i casa con Tea.

Si el texto trae tea

javascript
console.log(/tea/.test("mint tea"));
console.log(/tea/.test("lemon"));

La consola enseña true y después false. Un punto vale por un solo carácter que no sea un salto de línea, de modo que /t.a/ también casa con tea. El punto de verdad se escribe con barra invertida y punto: .

Exigir la cadena entera

^ marca el inicio y $ marca el final. /^tea$/ acepta tea y deja fuera mint tea. Si quitas esas dos marcas, /tea/ sigue valiendo cuando tea va dentro de una nota más larga.

La comanda de punta a punta

javascript
console.log(/^tea$/.test("tea"));
console.log(/^tea$/.test("mint tea"));

Otra vez la consola: true y luego false. Las letras están en mint tea, pero el texto no es únicamente tea.

Cada copia, y un texto nuevo

La bandera g hace que match devuelva cada copia. replace con g cambia cada copia y devuelve un texto nuevo. note sigue igual hasta que asignas ese resultado.

Las dos copias y el cambio

javascript
const note = "tea and tea";
console.log(note.match(/tea/g));
console.log(note.replace(/tea/g, "mint"));
console.log(note);

El registro de match es un array de dos cadenas tea. El de replace es mint and mint. El tercero sigue siendo tea and tea, porque replace no editó note. Sin g solo cambia el primer tea. Si no hay coincidencia, match devuelve null, no un array vacío.

La forma de la respuesta elige el método

Elige el método según la forma de la respuesta que buscas.

📊 Qué devuelve cada método

Método Forma de la respuesta En esta nota
/tea/.test(note) true o false true para Order: tea
note.match(/tea/) un array de un acierto, o null la palabra tea y dónde estaba
note.match(/tea/g) cada copia, o null dos aciertos en tea and tea
note.replace(/tea/, "mint") un texto nuevo Order: mint

test es sí o no. match te entrega los trozos. replace te entrega el texto reescrito. Si quieres conservarlo, asígnalo.

La página escribe los dos resultados

La página pone a prueba Order: tea, cambia la bebida y escribe los dos resultados.

La línea con test y replace

html
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const note = "Order: tea";
const found = /tea/.test(note);
const next = note.replace(/tea/, "mint");
document.querySelector("#line").textContent = found + " / " + next;
</script>
</body>
</html>

La línea se lee true / Order: mint. note sigue siendo Order: tea. lida / mint / 2 era la página del mapa.

Cinco pasos cortos

  1. Prueba mint tea con /tea/. El resultado es true.
  2. Prueba lemon con /tea/. El resultado es false.
  3. Prueba mint tea con /^tea$/. El resultado es false.
  4. Casa tea and tea con /tea/g. La longitud del array es 2.
  5. Lee la página. La línea es true / Order: mint.

Fallos y lo que conviene guardar

Sin ^ y sin $ un patrón casa con un trozo, no con la nota entera. replace no edita el original.

  • No leas null.length cuando match no encontró nada
  • No esperes que replace cambie note en el sitio
  • No pongas g en una expresión que reutilices con test, porque recuerda dónde se detuvo
  • Escribe un punto de verdad como barra invertida y punto
  • No leas la línea como lida / mint / 2

Guardar

  • test responde true o false
  • /^tea$/ acepta solo la cadena entera tea
  • match con g lista cada copia o devuelve null
  • replace devuelve un texto nuevo
  • la línea de la página es true / Order: mint

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior