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?
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!