Heim >Web-Frontend >js-Tutorial >Wie kann ich in ES6-JavaScript einen regulären String in ein Vorlagenliteral konvertieren, ohne „eval' oder „new Function' zu verwenden?

Wie kann ich in ES6-JavaScript einen regulären String in ein Vorlagenliteral konvertieren, ohne „eval' oder „new Function' zu verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 08:24:10492Durchsuche

How Can I Convert a Regular String to a Template Literal in ES6 JavaScript Without Using `eval` or `new Function`?

Konvertieren eines Strings in einen Template-String mit ES6

In JavaScript können Sie mit Template-Strings Ausdrücke und Variablen direkt in Strings einbetten und so bereitstellen eine prägnante und lesbare Syntax. Was aber, wenn Sie eine Vorlagenzeichenfolge aus einer vorhandenen Nicht-Vorlagenzeichenfolge erstellen möchten? Diese Frage untersucht die Möglichkeit, diese Konvertierung ohne den Einsatz dynamischer Codegenerierungstechniken wie eval oder new Function zu erreichen.

Die bereitgestellte Lösung nutzt die String-Interpolationsfunktionen von ES6 mit einer benutzerdefinierten Interpolationsfunktion. Diese Funktion nimmt ein Objekt, das die Vorlagenparameter enthält, und generiert dynamisch eine Vorlagenzeichenfolge mithilfe eines JavaScript-Vorlagenliterals.

So funktioniert die Lösung:

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

Die Interpolationsfunktion wird als benutzerdefinierte Funktion hinzugefügt Prototyp-Methode zum String-Objekt. Es akzeptiert ein Objekt aus Schlüssel-Wert-Paaren, die die Vorlagenparameter darstellen.

const template = 'Example text: ${text}';
const result = template.interpolate({
  text: 'Foo Boo'
});

Hier wenden wir die Interpolationsfunktion auf unsere Vorlagenzeichenfolge an und übergeben ein Objekt, dessen Parametertext auf „Foo Boo“ gesetzt ist. Die Funktion erstellt eine Vorlagenzeichenfolge, indem sie ein JavaScript-Vorlagenliteral mit Platzhaltern für die Parameterwerte verwendet.

console.log(result);

Schließlich protokollieren wir das Ergebnis in der Konsole, die Folgendes ausgeben sollte:

Example text: Foo Boo

Mit dieser Lösung können Sie eine gewöhnliche Zeichenfolge dynamisch in eine Vorlagenzeichenfolge umwandeln und so die Ausdruckskraft und Lesbarkeit nutzen, die Vorlagenzeichenfolgen in Ihrem JavaScript-Code bieten.

Das obige ist der detaillierte Inhalt vonWie kann ich in ES6-JavaScript einen regulären String in ein Vorlagenliteral konvertieren, ohne „eval' oder „new Function' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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