Heim > Artikel > Web-Frontend > Kann eine reguläre Zeichenfolge in JavaScript ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?
Konvertieren einer Zeichenfolge in eine Vorlagenzeichenfolge
Kann eine gewöhnliche Zeichenfolge in eine Vorlagenzeichenfolge konvertiert werden, wodurch die Notwendigkeit dynamischer Codegenerierungstechniken entfällt? Wie Evaluierung oder neue Funktion?
Antwort:
Ja, In ES6 kann dem String-Prototyp eine benutzerdefinierte Methode hinzugefügt werden:
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);
Diese Methode verwendet ein Objekt als Argument, wobei Schlüssel Vorlagen-String-Variablen darstellen und Werte ihre Ersetzungen sind. Es erstellt eine neue Funktion, die die interpolierte Vorlagenzeichenfolge zurückgibt und sie mit den bereitgestellten Werten ausführt.
Das obige ist der detaillierte Inhalt vonKann eine reguläre Zeichenfolge in JavaScript 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!