0
votes

JavaScript - Remplacement de plusieurs parties de la chaîne en une fois

Je veux remplacer plusieurs parties d'une chaîne avec des choses différentes. J'ai une série d'URL contenant ces chaînes qui doivent changer, elles suivent tous le même motif.

E.g.

  • «Cours d'espagnol-débutant»
  • 'italien-débunners-parcours'
  • "Cours d'espagnol-italien-débutant"

    Je veux juste que le résultat soit les langues par exemple. Espagnol, italien, italien espagnol

    J'ai essayé cela comme un test, mais il renvoie "l'espagnol non défini indéfini" xxx


4 commentaires

Avez-vous besoin de regex? Pouvez-vous simplement utiliser par exemple 'ESPAGNOL-Débutants-Course'ilreplace (' - Débutant-parcours ',' ') ?


Il doit couvrir plusieurs langues comme un «parcours d'espagnol-italien-débuners» aussi


Eh bien, il suffirait de faire pagename.replace ('- débutant-parcours', '')


Ou si vous avez besoin de l'espace au lieu de l'utilisation de l'utilisation pagename.replace ('- débutant-cours', ''). Remplacer ('-' ',' ')


3 Réponses :


1
votes

Ceci se produit car votre correspondance REGEX recherche débutants , mais dans votre objet objet Il n'y a pas de touche appelée débutants - il s'appelle -Beginners . Idem pour cours / -course . xxx

Dans tous les cas, votre objet est inutile, et c'est ainsi que le regex (comme @Alastair) ) Puisque vous remplacez une sous-chaîne statique et immuable. xxx


0 commentaires

0
votes

Votre cas est très simple, vous pouvez vous diviser et prendre en premier.

p>

.as-console-row {color: blue!important}


0 commentaires

0
votes

Vous obtenez null parce que cette partie - | débutants | cours code> est un Alternance qui correspondra à - code>, débutants code> ou cours code>

Vous utilisez la correspondance pour obtenir la valeur de l'objet , mais l'objet contient -Beginners code> et -course code> p>

Si vous voulez faire le remplacement, et il doit y avoir au moins 1 mot avant , vous pouvez utiliser un groupe de capture 1 $ code> dans le remplacement et correspondez après ce que vous souhaitez supprimer. p> xxx pré>

REGEX DEMO P>

P>

[
  'spanish-beginners-course',
  'italian-beginners-course',
  'spanish-italian-beginners-course',
  'donotremove!-beginners-course'
]
.forEach(s => console.log(s.replace(/(\w+(?:-\w+)*)-beginners-course\b/g, "$1")));


0 commentaires