以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 代码题
149. interpolation
function t(str, data = {}) { const pattern = /{{([^}]+)}}/g; return str.replace(pattern, (_, group) => data[group.trim()] || '');}
解析:
- 使用正则表达式匹配
{{}}的内容。 - 通过
replace()方法进行替换,替换内容为data对象中对应的属性值,如果对应属性不存在或值为空,则替换为''。其中第一个参数_表示整个匹配的字符串,第二个参数group表示匹配的括号中的内容。 - 第二个参数
data默认值为空对象,即不传入时也不会报错。
注意点:
- 处理
{{}}内容时需要去除空格后再从data对象中获取属性值,否则会因为属性名不一致而获取不到值导致替换出错。 - 如果存在多个包含在
{{}}中的单个{或}符号,会将其当做普通字符而不是关键字处理,结果可能会受到影响。