我发现了 Javascript ES6 Template Literals今天。就一个字:太棒了!
问题:如何将模板文字存储和加载为 JSON?我通过 XHR 加载一些文件,然后是一些 JSON.parse()
不支持 `
而不是 "
, 因此似乎无法将模板文字直接保存在文件中。
目标:将其用于动态字符串和翻译,并摆脱像 ("Hello " + username + "! How are you?")
这样令人困惑的东西这需要为一条消息存储多个字符串,而不是像
`Hello, ${username}! How are you?`
其中 username 指向同名的动态变量。那可能吗?如果是,如何实现?如果我必须使用一个函数以某种方式将字符串转换为模板文字也没关系,只要它不会严重影响整体性能,但我想至少避免 eval
.
最佳答案
您可以创建自己的函数来解析模板文字,
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'
关于Javascript:如何将模板文字与 JSON 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43261798/