J'ai essayé de le trouver dans le réseau sans aucun succès.

Disons que j'ai la chaîne suivante:

ceci est un test de chaîne avec beaucoup de mots de chaîne ici une autre chaîne de chaîne ici chaîne ici chaîne.

Je dois remplacer la première " chaîne " par " anotherString " après le premier " ici ", le résultat sera donc:

ceci est un test de chaîne avec beaucoup de mots de chaîne ici une autre chaîne anotherString ici chaîne ici chaîne.

Merci à tous pour l'aide!

0
Ziki 15 juil. 2015 à 10:19

2 réponses

Meilleure réponse

Vous n'avez pas besoin d'ajouter le modificateur g en ne remplaçant que la première occurrence.

str.replace(/\b(here\b.*?)\bstring\b/, "$1anotherString");

DEMO

5
Avinash Raj 15 juil. 2015 à 07:22

Si vous cherchez quelque chose qui prend dans une phrase et remplace la première occurrence de "string" après "here" (en utilisant l'exemple dans votre cas),

  1. Vous devriez probablement regarder split () et voir comment l'utiliser de manière gourmande faisant référence à quelque chose comme cette question. Maintenant, utilisez la seconde moitié de la chaîne divisée

  2. Ensuite, utilisez replace () pour trouver "string" et le changer en "anotherString". Par défaut, cette fonction est gourmande donc seule votre première occurrence sera remplacée.

  3. Concaténez la partie avant "ici" dans la chaîne d'origine, "ici" et la nouvelle chaîne pour la seconde moitié de la chaîne d'origine et cela vous donnera ce que vous recherchez.

Travail du violon ici.

inpStr = "this is a string test with a lot of string words here another string string there string here string."

firstHalf = inpStr.split(/here(.+)?/)[0]
secondHalf = inpStr.split(/here(.+)?/)[1]
secondHalf = secondHalf.replace("string","anotherString")

resStr = firstHalf+"here"+secondHalf
console.log(resStr)

J'espère que cela t'aides.

0
Community 23 mai 2017 à 12:14