Heim > Web-Frontend > js-Tutorial > Wie kann eine reguläre Zeichenfolge ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?

Wie kann eine reguläre Zeichenfolge ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?

Mary-Kate Olsen
Freigeben: 2024-11-22 10:05:14
Original
725 Leute haben es durchsucht

How Can a Regular String Be Converted to a Template Literal Without `eval` or `new Function`?

Einfache Zeichenfolgen in Vorlagenzeichenfolgen umwandeln

Kann eine normale Zeichenfolge mühelos in eine Vorlagenzeichenfolge umgewandelt werden? Betrachten Sie das folgende Beispiel:

let a = "b:${b}";
Nach dem Login kopieren

Wie können wir dies dynamisch in eine Vorlagenzeichenfolge konvertieren, ohne auf Auswertung, neue Funktionen oder andere Techniken zur dynamischen Codegenerierung zurückgreifen zu müssen?

let b = 10;
console.log(a.template()); // b:10
Nach dem Login kopieren

Eine ES6-Lösung

In modernem JavaScript können wir ES6-Funktionen nutzen, um dies zu erreichen Konvertierung:

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

const template = 'Example text: ${text}';
const result = template.interpolate({
  text: 'Foo Boo'
});
console.log(result); // 'Example text: Foo Boo'
Nach dem Login kopieren

Diese Methode verwendet die Funktion String.prototype.interpolate, die ein Parameterobjekt akzeptiert. Es erstellt dynamisch eine neue Funktion unter Verwendung der Schlüssel und Werte des Objekts und führt sie dann aus, um die interpolierte Zeichenfolge zurückzugeben.

Das obige ist der detaillierte Inhalt vonWie kann eine reguläre Zeichenfolge ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage