Disons que j'ai une chaîne: ... que je voudrais me transformer en: p> essentiellement remplaçant un Integer avec des occurrences répétées de Je comprends que les rafraîchissements peuvent être utilisés avec et que Nous pouvons utiliser mais comment puis-je utiliser la brouillon de # code> équivalent à la valeur entière. Comment puis-je atteindre cela? P> str.replace () code> p> str.repeat (n) code> pour répéter les séquences de chaîne n code> fois. p> .replace () code> comme argument de .repeat () code>? Par exemple, cela ne fonctionne pas: P> str.replace(/([0-9])/g,"#".repeat("$1"))
4 Réponses :
"__3_".replace(/\d/, match => "#".repeat(+match))
En fait, vous n'avez pas besoin du + code>.
@ryeeballar en fait vous faites. Sinon 11 code> remplacerait par ## code> au lieu de ########### code>, etc. Attendez cependant je viens de regarder L'édition, où + correspond code> a été remplacé par correspondant code>. Mais le REGEXP doit être remplacé par / \ d + / g code>
@PatrickRoberts sur REGEXP - Possible oui ou non - je ne suis pas sûr quelle logique est nécessaire
Essayez ceci:
p>
var str = "__3_";
str = str.replace(/[0-9]+/, function(x) {
return '#'.repeat(x);
});
alert(str);Merci pour la réponse, malheureusement, @Vasiliy a répondu un peu plus tôt.
Essayez ceci:
var str = "__3_";
str = str.replace(/[0-9]/g,function(a){
var characterToReplace= '#';
return characterToReplace.repeat(a)
});
Approche à l'ancienne:
"__3__".replace(/\d/, function (x) {
return Array(+x + 1).join('#');
});
/ (x) \ 1 / code> correspond à "xx" où\ 1 code> est une référence arrière. "1 $ 1" n'est pas une référence arrière, il s'agit d'un modèle de remplacement spécial.