以下为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
对象中获取属性值,否则会因为属性名不一致而获取不到值导致替换出错。 - 如果存在多个包含在
{{}}
中的单个{
或}
符号,会将其当做普通字符而不是关键字处理,结果可能会受到影响。