今日発見したのは Javascript ES6テンプレートリテラル です。たった一言:すごい!
質問:テンプレートリテラルをJSONとして保存およびロードする方法XHRを介していくつかのファイルをロードし、その後に_`
_ではなく_"
_をサポートしないJSON.parse()
をいくつかロードするので、テンプレートリテラルをファイルに直接保存できないようです。
目標:動的な文字列と翻訳にこれを使用し、_("Hello " + username + "! How are you?")
_のような混乱するものを取り除くには、複数の文字列を格納する必要があります一つのメッセージ、そして代わりに私のものを美しくシンプルに保存する
_`Hello, ${username}! How are you?`
_
usernameは、同じ名前の動的変数を指します。それは可能ですか?はいの場合、これをどのように達成しますか?全体的なパフォーマンスに大きな影響を与えない限り、関数を使用して文字列をテンプレートリテラルに変換する必要があっても問題ありませんが、少なくともeval
は避けたいと思います。
いつでもJSON.stringify
動的データを囲むには:
const data = 'some value';
JSON.stringify({
data,
});
// expected: "{\"data\": \"some value\"}"
テンプレートリテラルを解析する独自の関数を作成できます。
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'