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 les endroits où je vais mal je suis sûr que c'est une solution simple.
Vous avez besoin d'un /g
, Comme ceci:
var textTitle = "this is a test";
var result = textTitle.replace(/ /g, '%20');
console.log(result);
vous pouvez y jouer ici , le comportement .replace()
par défaut consiste à remplacer uniquement la première correspondance, le modificateur /g
(global) lui dit de remplacer toutes les occurrences.
textTitle.replace(/ /g, '%20');
Essayez d'utiliser une expression régulière au lieu d'une chaîne pour le premier argument.
"this is a test".replace(/ /g,'%20')
// # => "ceci% 20is% 20a% 20test"
La méthode replace () recherche une correspondance entre une sous-chaîne (ou une expression régulière) et une chaîne, et remplace la sous-chaîne correspondante par une nouvelle sous-chaîne.
Il serait préférable d'utiliser une expression régulière ici:
textTitle.replace(/ /g, '%20');
Pour cela, vous ne devez pas utiliser le drapeau g de regex .... Comme ceci:
var new_string=old_string.replace( / (regex) /g, replacement_text);
Ce sh
Idem si vous avez besoin d'une expression rationnelle "générique" à partir de la chaîne:
const textTitle = "this is a test";
const regEx = new RegExp(' ', "g");
const result = textTitle.replace(regEx , '%20');
console.log(result); // "this%20is%20a%20test" will be a result