Javascript:如何将模板文字与 JSON 一起使用?

标签 javascript json template-literals

我发现了 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/

相关文章:

python - 将字典转换为具有波斯字符的 json

javascript - 使用 document.location.href 加载一组 URL,然后仅在页面加载时执行 JS

javascript - 滚动时的 jQuery 导航栏过渡。如何调整特定的过渡点

javascript - 使用 Newtonsoft、C# 反序列化 JSON 时出错

javascript - 如何在 JavaScript 中删除 JSON 字符串中的第一个和最后一个双引号?

javascript - 为什么在 javaScript 中类型转换为字符串时,let 不被识别为关键字?

javascript - 表情符号模板文字中的 Unicode 值

javascript - 递归中的变量.replace with regexp

javascript - 查找数据表中特定单元格的值

javascript - 如何在 MUI 中单击卡片时添加波纹效果