2
我需要一個JavaScript函數,可以插入像原型js框架一樣。任何人都有一個不依賴於原型的插值函數? Jquery是受歡迎的。謝謝。插值函數需要
我需要一個JavaScript函數,可以插入像原型js框架一樣。任何人都有一個不依賴於原型的插值函數? Jquery是受歡迎的。謝謝。插值函數需要
根據您的需求,這樣的事情可能工作:
String.prototype.interpolate = function(valueMap){
return this.replace(/\{([^}]+)\}/g, function(dummy, v){
return valueMap[v];
});
};
用法:
var params = {
"speed":"slow",
"color":"purple",
"animal":"frog"
};
var template = "The {speed} {color} fox jumps over the lazy {animal}.";
alert(template.interpolate(params));
//alerts:
//"The slow purple fox jumps over the lazy frog."
這將爲{named}
項目裹在你的字符串括號提供基本的插值。
注:這是一個基本的實現,不應該在字符串或參數並不安全的情況下(例如,如果你要建立一個SQL語句或東西)
如果你不使用關注安全問題(eval()
不嚴重的代碼是一件好事):
evalfun = function (x) {
return eval(x);
};
String.prototype.interpolate = function (fn) {
return this.replace(/\{([^}]+)\}/g,
function (dummy, v) {
return fn(v);
}
);
};
var world = "room"
"hello {world}".interpolate(evalfun);
你可能有更好的運氣,如果你真的告訴我們這個功能應該做的。 – Andrea 2011-03-18 20:32:08