模板字符串的简单实现
由于前不久遇到一个前端笔试题,实现一个简易的模板渲染函数,但是没能做出来,于是在此进行总结记录。
题目大致内容如下:
1 | // 实现一个简易模板渲染 |
使用过ES6
的模板字符串语法的人都知道,可以使用${}
将变量包起来,替代原来ES5
的+
拼接字符串。这个函数要实现的功能正是如此。
因为是使用${}
这种特定的语法,我们很容易想到,使用正则将${}
里面的内容替换出来,填充我们定义的变量进去即可。这里使用到字符串的replace
方法:(更多replace内容点这里)
1 | /** |
实现这个函数的主要难点我认为是正则表达式的书写,对正则表达式不是很熟悉的话,真的很难…
该正则进行拆分:
/\$\{([^}]+)\}/g
- 首先是g后缀,表示全局匹配,不会匹配到一个就结束
- 前面的
\$
和\{
表示转义,进行匹配${
- 匹配到
${
后,接下来这一串([^}]+)
表示匹配一个或多个非}
的字符 - 最后匹配
\}
, 匹配右花括号
评论