let str = '你爱我,我爱你,${line1}甜蜜蜜。你爱我,我爱你,${line2}${line3}。';
let obj = {
line1: '我学编程',
line2: '你学编程',
line3: '天灭你'
};
function templateStrFun(str, obj) {
return str.replace(/\$\{(.*?)\}/g, (match, key) => {
return obj[key];
});
}
templateStrFun(str, obj);
// 你爱我,我爱你,我学编程甜蜜蜜。你爱我,我爱你,你学编程天灭你。
.*?
是正则固定搭配用法,表示非贪婪匹配模式,尽可能匹配少的。 你爱我,我爱你,${line1}甜蜜蜜。你爱我,我爱你,${line2}${line3}。
中一次只匹配一个 ${}
,例如 ${line1}
。
.*
为贪婪模式表示尽可能匹配范围最大的值,如 ${line1}甜蜜蜜。你爱我,我爱你,${line2}${line3}
。
网友评论