javascript – 如何使用变量名实现字符串格式化程序

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用变量名实现字符串格式化程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想实现一个字符串格式化程序.我已经使用了格式化程序,它采用类似“快速,棕色{0}跳过惰性{1}”的字符串,在那里传入参数,其基数位置用于替换支撑整数.
我希望能够做一些更像“快速,棕色{animal1}跳过懒惰的{animal2}”的东西,其中animal1和animal2是变量而且只是被评估.我实现了以下方法,但后来意识到eval不起作用,因为它不使用相同的范围.
String.prototype.format = function() {
    reg = new RegExp("{([^{}]+)}","g");
    var m;
    var s = this;
    while ((m = reg.exec(s)) !== null) {
        s = s.replace(m[0],eval(m[1]));
    }
    return s;
};

>有没有办法在不使用eval的情况下执行此操作(看起来不像).
>有没有办法给eval提供封闭,以便获得范围?我试过了
with(window)和window.eval(),但是没有用.

解决方法

对于像var result =“这将使用我的{name}和{number}”格式化的用法.format({name:“TetsujinOni”,number:1234});

为什么不朝这个方向前进:

String.prototype.format = function(scope) {
    reg = new RegExp("{([^{}]+)}",scope[m[1]]);
    }
    return s;
};
原文链接:https://www.f2er.com/js/156672.html

猜你在找的JavaScript相关文章