美文网首页
笔试实现一个字符串模板函数

笔试实现一个字符串模板函数

作者: 清晓凝露 | 来源:发表于2020-08-18 15:16 被阅读0次

实现一个字符串模板函数

const a = {
  b: 'xxx',
  c: ['a', 'b'],
  d: {
   a: 'a'
  }
}

const string = 'aaa${a.b}bbb${a.c[0]}ccc${a.d.a}'
transform(string, a) => 'aaaxxxbbbaccca'

解题思路

通过正则表达式将插值部分匹配出来替换成对象属性值

const a = {
  b: 'xxx',
  c: ['a', 'b'],
  d: {
    a: 'a'
  }
}
const transform = (str) => {
  let newStr = str.replace(/\$\{.*?\}/g, (res) => {//正则表达式匹配${xxxx}
    let newValue = ""
    try {
      newValue = eval(res.slice(2, -1));//截取插值部分
    }
    catch (exception) {//如果取值报错将匹配的字符串部分原样返回
      newValue = res;
    }
    return newValue;
  })
  return newStr;
}
const str = 'aaa${a.b}bbb${a.c[0]}ccc${a.d.a}';
console.log(transform(str));//aaaxxxbbbaccca

相关文章

  • kubernetes(k8s)helm模板之模板函数与管道

    模板函数 比如我们需要从.Values中读取的值变成字符串的时候就可以通过调用quote模板函数来实现:(temp...

  • GoWeb基础——Text/HTML模板

    模板函数 创建一个名字为name的模板 解析模板字符串 解析文件 执行模板,将结果写入wr 注册函数给模板,注册之...

  • 笔试实现一个字符串模板函数

    实现一个字符串模板函数 解题思路 通过正则表达式将插值部分匹配出来替换成对象属性值

  • ES6常用新特性

    ES6新特性介绍 模板字符串 模板字符串实现字符串拼接 模板字符串实现多行字符串 结构赋值 对象的解构赋值 数组的...

  • ES6-字符串方法及其实现

    1.模板字符串 模板字符串替换+操作符,来拼接字符串,并且支持换行: 标签模板: 标签模板其实不是模板,而是函数调...

  • ES6系列 (三)模板字面量

    特性 模板字面量实现字符串插值 模板字面量实现多行字符串 模板字面量实现可重用的模板 理解标记模板字面量如何自定义...

  • JS基础系列(X): ES6入门

    字符串扩展 模板字符串模板字符串可以很方便的代替ES5字符串拼接,格式如下: 代码示例 API 函数扩展 函数默认...

  • ES6-字符串模板

    模板字符串使用案例一 标签模板字符串 标签模板字符串案例 标签函数的用途,可以用来过滤用户输入

  • ES6

    ES6新增特性: 2.模板字符串适用场景:解决字符串拼接问题用反引号实现:`` 获取值:${ } 匿名函数: 用 ...

  • Django权限系统实现网站的登录与退出功能

    实现登录 函数体: 模板页面: 实现退出 函数体: 模板页面: 实现限制 函数体(限制登录是限制游客用户登录信息列...

网友评论

      本文标题:笔试实现一个字符串模板函数

      本文链接:https://www.haomeiwen.com/subject/ctvqjktx.html