美文网首页
手写源码-实现一个模板字符串

手写源码-实现一个模板字符串

作者: 胡小喵_ | 来源:发表于2021-08-26 09:40 被阅读0次
    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}

    相关文章

      网友评论

          本文标题:手写源码-实现一个模板字符串

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