Cómo reemplazar todas las apariciones de una cadena en JavaScript

Descubra la forma correcta de reemplazar todas las apariciones de una cadena en JavaScript simple, desde expresiones regulares hasta otros enfoques


Usando una expresión regular

Esta simple expresión regular hará la tarea:

String.replace(/<TERM>/g, '')

Esto realiza undistingue mayúsculas y minúsculassustitución.

Aquí hay un ejemplo, donde sustituyo todas las apariciones de la palabra 'perro' en la cadenaphrase:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //“I love my ! Dogs are great”

Para realizar un reemplazo que no distingue entre mayúsculas y minúsculas, utilice eliopción en la expresión regular:

String.replace(/<TERM>/gi, '')

Ejemplo:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/gi, '')

stripped //“I love my ! s are great”

Recuerde que si la cadena contiene algunos caracteres especiales, no funcionará bien con expresiones regulares, por lo que la sugerencia es escapar de la cadena usando esta función (tomada deMDN):

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\{{content}}amp;')
}

Usando dividir y unir

Una solución alternativa, aunque más lenta que la expresión regular, es utilizar dos funciones de JavaScript.

El primero essplit(), que trunca una cadena cuando encuentra un patrón (distingue entre mayúsculas y minúsculas) y devuelve una matriz con los tokens:

const phrase = 'I love my dog! Dogs are great'
const tokens = phrase.split('dog')

tokens //["I love my ", “! Dogs are great”]

Luego, une los tokens en una nueva cadena, esta vez sin ningún separador:

const stripped = tokens.join('') //"I love my ! Dogs are great"

Terminando:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.split('dog').join('')

Más tutoriales de js: