web-dev-qa-db-ja.com

JavaScript:JSONでテンプレートリテラルを使用する方法

今日発見したのは Javascript ES6テンプレートリテラル です。たった一言:すごい!

質問:テンプレートリテラルをJSONとして保存およびロードする方法XHRを介していくつかのファイルをロードし、その後に_`_ではなく_"_をサポートしないJSON.parse()をいくつかロードするので、テンプレートリテラルをファイルに直接保存できないようです。

目標:動的な文字列と翻訳にこれを使用し、_("Hello " + username + "! How are you?")_のような混乱するものを取り除くには、複数の文字列を格納する必要があります一つのメッセージ、そして代わりに私のものを美しくシンプルに保存する

_`Hello, ${username}! How are you?`
_

usernameは、同じ名前の動的変数を指します。それは可能ですか?はいの場合、これをどのように達成しますか?全体的なパフォーマンスに大きな影響を与えない限り、関数を使用して文字列をテンプレートリテラルに変換する必要があっても問題ありませんが、少なくともevalは避けたいと思います。

10
nora

いつでもJSON.stringify動的データを囲むには:

const data = 'some value';
JSON.stringify({
  data,
});
// expected: "{\"data\": \"some value\"}"
3
ElPepe

テンプレートリテラルを解析する独自の関数を作成できます。

function stringTemplateParser(expression, valueObj) {
  const templateMatcher = /{{\s?([^{}\s]*)\s?}}/g;
  let text = expression.replace(templateMatcher, (substring, value, index) => {
    value = valueObj[value];
    return value;
  });
  return text
}

console.log(stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100}));


// output 'my name is Tom and age is 100'
0
Manasvi Sareen