Maison > interface Web > js tutoriel > Comment puis-je convertir par programme une chaîne en un modèle littéral en JavaScript en toute sécurité ?

Comment puis-je convertir par programme une chaîne en un modèle littéral en JavaScript en toute sécurité ?

Patricia Arquette
Libérer: 2024-12-02 02:01:09
original
534 Les gens l'ont consulté

How Can I Programmatically Convert a String to a Template Literal in JavaScript Safely?

Conversion de chaînes en chaînes de modèles par programmation

En Javascript, il est possible de définir des modèles de chaînes à l'aide de backticks ( ) ou. Cependant, dans certains scénarios, vous pouvez rencontrer une situation dans laquelle vous avez une chaîne qui ressemble à une chaîne de modèle mais qui n'en est pas une syntaxiquement.

Par exemple, vous pourriez avoir une chaîne ressemblant à :

let a = "b:${b}";
Copier après la connexion

Et vous aimeriez le convertir plus tard en une chaîne de modèle valide.

Il est essentiel de noter que l'utilisation de méthodes comme eval ou new Function pour la génération de code dynamique est non recommandé pour des raisons de sécurité. Plutôt. vous pouvez exploiter la méthode String.prototype.interpolate, implémentée dans ES6 comme suit :

String.prototype.interpolate = function(params) {
  const names = Object.keys(params);
  const vals = Object.values(params);
  return new Function(...names, `return \`${this}\`;`)(...vals);
};
Copier après la connexion

En utilisant cette méthode, vous pouvez transformer votre chaîne de la manière suivante :

let b = 10;
console.log(a.interpolate({ b }));
Copier après la connexion

Le la sortie sera b:10, ce qui démontre l'interpolation réussie de la variable b dans la chaîne a.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal