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