JavaScript.remplacer seulement remplace le premier Match
var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');
Mais les fonctions de remplacement s'arrêtent à la première instance du "" et j'obtiens le
Résultat : "this%20is a test"
Toutes les idées sur où je vais mal im sûr que c'est une solution simple.
6 réponses
Vous avez besoin d'un /g
là-bas, comme ceci:
var textTitle = "this is a test";
var result = textTitle.replace(/ /g, '%20');
console.log(result);
Vous pouvez jouer avec ici, le comportement par défaut .replace()
est de remplacer uniquement la première correspondance, le modificateur /g
(global) lui indique de remplacer toutes les occurrences.
Essayez d'utiliser une expression rationnelle au lieu d'une chaîne pour le premier argument.
"this is a test".replace(/ /g,'%20')
// #=> "ce%20is%20a % 20test"
La méthode replace() recherche pour un match entre une sous-chaîne (ou expression régulière) et une chaîne, et remplace la sous-chaîne correspondante avec un nouveau sous-chaîne
Serait préférable d'utiliser une expression régulière ici alors:
textTitle.replace(/ /g, '%20');
Pour cela, vous neet utiliser le drapeau g de regex.... Comme ceci:
var new_string=old_string.replace( / (regex) /g, replacement_text);
Que sh