/** Supplant **/
String.prototype.supplant = function(o) {
return this.replace (/{([^{}]*)}/g,
function (a, b) {
var r = o[b];
return typeof r === 'string' || typeof r === 'number' ? r : a;
}
);
};
Run Code Online (Sandbox Code Playgroud)
Crockford毫无疑问是一个JavaScript大师精灵,但是当涉及多个级别的对象时,他的原型缺乏.
我希望此功能涵盖多级对象替换,例如'{post.detailed}'任何人都可以帮我修改替换版本吗?
这不应该太困难.请改用此替换功能:
function (a, b) {
var r = o,
parts = b.split(".");
for (var i=0; r && i<parts.length; i++)
r = r[parts[i]];
return typeof r === 'string' || typeof r === 'number' ? r : a;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |