Les chaînes JavaScript sont immuables, je crois. (une recherche rapide sur Google montre que SO et Wikipedia me soutiennent)
Cela signifie en fait que leur valeur ne peut pas être modifiée sans une instruction d'affectation.
Par conséquent, String.replace(...)
ne modifie pas la valeur de la chaîne, mais renvoie à la place une nouvelle chaîne.
var replaced = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
Maintenant, puisque vous êtes sans doute essayer de changer le window.location.hash
vous êtes probablement la pêche pour ...
window.location.hash = window.location.hash.replace(/search=([^\/]*)/gi, "search=" + value);
Votre deuxième déclaration est incorrecte, leurs valeurs ne peuvent jamais être modifiés, c'est la définition de immuable. –
Jacob, tu sais ce qu'il voulait dire. :-) –
@Jacob Ralkin - C'est vrai, mais je sacrifiais la précision pour la clarté; D'un point de vue pratique, pour un débutant, je pense que la déclaration est toujours exacte, mais pas correcte. –