【发布时间】:2015-06-16 17:35:28
【问题描述】:
我想创建一个方法,我可以通过格式字符串传递一个记录集(可以很容易地成为一个通用对象),以按名称替换值。我在 SO 上找到了另一个答案,几乎做到了:https://stackoverflow.com/a/2534828/359135
function format(str, obj) {
return str.replace(/\{\s*([^}\s]+)\s*\}/g, function(m, p1, offset, string) {
return obj[p1]
})
}
但它不太有效(我不认为):http://jsfiddle.net/9Jpkv/24/
注意:我的记录集版本只是:
function format(str, rs) {
return str.replace(/\{\s*([^}\s]+)\s*\}/g, function(m, p1, offset, string) {
return rs(p1); //use recordset names accessors instead of object properties
})
}
我希望能够做到这一点,而无需像上面的代码几乎可以做到的那样遍历对象(或记录集的列)的属性。相反,它会查找大括号之间的项目并尝试在对象属性(或记录集列)中找到它们
或者实际上我是个白痴,上面确实有效!:http://jsfiddle.net/9Jpkv/26/
我没有传递对象!
【问题讨论】:
标签: javascript regex string-formatting