Remplacement de chaînes avec regex en JavaScript

Une expression régulière particulière me fait l'erreur aujourd'hui. Je veux simplement remplacer la gamme = 100 dans une chaîne comme

var string = '...commonstringblabla<b>&range=100&</b>stringandsoon...'; 

avec

 ...commonstringblabla<b>&range=400&</b>stringandsoon... 

J'ai réussi à égaler la "gamme = 100" avec

Alerte (string.match (/ range = 100 /));

Mais lorsque j'essaie de le remplacer,

String.replace (/ range = 100 /, 'range = 400');

Rien ne se passe. La chaîne possède toujours la plage = 100. Comment puis-je le faire fonctionner?

Parce que replace ne modifie pas la chaîne sur laquelle elle est appliquée, mais renvoie une nouvelle chaîne.

 string = string.replace(/range=100/, 'range=400'); 

String.replace n'est pas destructeur, c'est-à-dire qu'il ne change pas l'instance sur laquelle il est appelé.

Pour ce faire, utilisez

 string = string.replace("range=100","range=400"); 

Je ferais ceci:

 string.replace(/([?&])range=100(?=&|$)/, '$1range=400') 

Cela ne remplacera que la range=100 s'il s'agit d'un argument URI (donc il est délimité à la gauche par ? ou & et "à droite" par & ou la fin de la chaîne).

Je ferais de cette façon

 string = string.replace(/\brange=100(?!\d)/, 'range=400'); 

Écrivez uniquement string.replace("range=100","range=400"); .