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.
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.
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.
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.
<!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
- Prueba mint tea con /tea/. El resultado es true.
- Prueba lemon con /tea/. El resultado es false.
- Prueba mint tea con /^tea$/. El resultado es false.
- Casa tea and tea con /tea/g. La longitud del array es 2.
- 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
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 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