Maison > Article > interface Web > Pourquoi `String.replace()` avec un signe dollar ($) donne-t-il une chaîne vide ?
String.replace() Oddity avec le remplacement du signe dollar ($)
Lors de l'utilisation du remplacement de chaîne en JavaScript, un comportement particulier peut survenir avec le caractère du signe dollar ($). Considérez l'extrait de code suivant :
<code class="javascript">var text = "as"; text = text.replace(text,"$\'"); console.log(text);</code>
Étonnamment, ce code génère une chaîne vide. Notre attente initiale aurait été qu'il imprime $'. Qu'est-ce qui explique ce résultat inattendu ?
La réponse réside dans la signification particulière de $ dans les expressions régulières JavaScript et la méthode de remplacement de chaîne. Dans ce contexte, $ désigne la fin de la chaîne, un comportement spécial qui remplace son rôle typique de caractère littéral.
Pour utiliser $ comme caractère réel dans la chaîne de remplacement, il est nécessaire de l'échapper en utilisant $$. En modifiant le code comme suit, nous obtenons le résultat souhaité :
<code class="javascript">var text = "as"; text = text.replace(text, "$$\'"); console.log(text);</code>
Ce code mis à jour imprime correctement $' sur la console, montrant l'utilisation appropriée de $ comme caractère littéral dans les expressions régulières.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!