9
votes

Utilisation de JavaScript Regex pour remplacer chaque match par un numéro d'itération

Je veux remplacer les lignes vides dans ma chaîne avec un numéro itérateur

E.g. remplacer p>

chaîne: p>

var newstring = TestVar.replace (/(^|\n\n)/g, "\nhello\n");


2 commentaires

Veuillez indenter vos blocs de code avec quatre espaces au début de chaque ligne.


Merci pour la tête, veillera à ce que je fasse cela à l'avenir


3 Réponses :


11
votes

Oui, vous pouvez le faire en JavaScript. Il vous suffit de passer une fonction sous forme de second argument sur remplacer code>.

var i = 0;
var newstring = TestVar.replace(/(^|\n\n)/g, function() { return '\n' + (++i) + '\n'; });


2 commentaires

Génial, merci beaucoup pour la réponse super rapide et utile.


Je pensais que cela ne fonctionnerait pas dans IE 6, mais cela fait en fait. Souvent IE 5 Était la dernière version qui n'a pas pris en charge une fonction comme deuxième paramètre dans String.replace.



2
votes

Voici une version sans utiliser une expression régulière. Vous pouvez utiliser la méthode Split () de de la chaîne , bien que franchement j'utiliserais la version d'expression régulière Néater. XXX


1 commentaires

C'est toujours une bonne idée de regarder les alternatives non réégiennes



0
votes

Pour remplacer les chemins d'image avec des noms simples dans HTML, j'ai fait que cette sortie

   "hello <img src="image_one.png">a<img src="src="add.png"> xyz <table><tbody><tr><td>He<img src="src="document_add.png">loo<img src="src="document_add.png"></td></tr></tbody></table><img src="src="CD_delete.png"><img src="src="check.png">"


0 commentaires