Heim  >  Artikel  >  Web-Frontend  >  Kann eine reguläre Zeichenfolge in JavaScript ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-23 00:40:12340Durchsuche

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

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!

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