Comment remplacer toutes les occurrences d'une chaîne en JavaScript

Découvrez la bonne façon de remplacer toutes les occurrences d'une chaîne en JavaScript brut, de l'expression régulière à d'autres approches


Utiliser une expression régulière

Cette simple regex fera la tâche:

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

Cela effectue unsensible aux majuscules et minusculessubstitution.

Voici un exemple, où je remplace toutes les occurrences du mot «chien» dans la chaînephrase:

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

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

Pour effectuer un remplacement insensible à la casse, utilisez leioption dans l'expression régulière:

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

Exemple:

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

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

N'oubliez pas que si la chaîne contient des caractères spéciaux, elle ne jouera pas bien avec les expressions régulières, donc la suggestion est d'échapper à la chaîne en utilisant cette fonction (tirée deMDN):

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

Utilisation de la division et de la jointure

Une solution alternative, bien que plus lente que l'expression régulière, consiste à utiliser deux fonctions JavaScript.

Le premier estsplit(), qui tronque une chaîne lorsqu'il trouve un modèle (sensible à la casse), et renvoie un tableau avec les jetons:

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

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

Ensuite, vous joignez les jetons dans une nouvelle chaîne, cette fois sans aucun séparateur:

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

Emballer:

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

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: