Maison > interface Web > js tutoriel > le corps du texte

Pourquoi « string.replace » produit-il une chaîne vide lors du remplacement par un signe dollar ($) ?

DDD
Libérer: 2024-10-28 17:30:03
original
665 Les gens l'ont consulté

Why Does `string.replace` Produce an Empty String When Replacing with a Dollar Sign ($)?

Comportement étrange de remplacement de chaîne à l'aide du signe dollar ($) dans string.replace

Lors de la tentative de remplacement d'une chaîne à l'aide de string.replace et en spécifiant le remplacement sous la forme d'un signe dollar ($), un résultat inattendu d'une chaîne vide peut survenir. Ce phénomène se produit en raison de l'importance particulière du signe dollar dans les expressions régulières JavaScript et la méthode string.replace.

Pour remplacer avec précision une chaîne par un signe dollar, la chaîne de remplacement doit être spécifiée comme $$ au lieu de $. En effet, le signe dollar, lorsqu'il est utilisé dans des expressions régulières, a des significations spécifiques liées aux références arrière, aux groupes de capture et à la fin de la chaîne.

Par exemple, considérons le code suivant :

<code class="javascript">var text = "as";
text = text.replace(text, "$'");
console.log(text); // Prints empty string</code>
Copier après la connexion

Dans ce cas, la chaîne vide est imprimée car la chaîne de remplacement est interprétée comme une référence à un groupe de capture. Puisqu'aucun groupe de capture n'est défini dans l'expression régulière, le résultat est une chaîne vide.

Pour corriger ce problème, utilisez $$ comme chaîne de remplacement :

<code class="javascript">var text = "as";
text = text.replace(text, "$$'");
console.log(text); // Prints $'</code>
Copier après la connexion

En utilisant $ $ au lieu de $, le signe dollar est traité comme un caractère littéral et le remplacement prévu se produit. En effet, $$ échappe à la signification particulière du signe dollar 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal