一个功能更强大的字符串格式化函数
作者:月影 来源:无忧脚本 时间:2008-04-30 17:44:00
This is a {t}. {name}是一个很强大的字符串模板解析方法。
它接受三个参数,分别是{args.text},{args.object},(可选的){args.decorator}
它最直接的用法是将{args.text}所表示的字符串中用"{{}"和"{}}"包含起来的字符串解析成object的属性。
例如: System.substitute("{{}a{}} love {{}b{}}.", {{}a:"I", b:"you"{}});
将得到{a} love {b}.
值得注意的是,模板替换可以支持多级属性替换,例如本例子中的{{}args.text{}},还可以支持表达式
例如{{}x{}}+{{}y{}} = {{}x+y{}} => {x} + {y} = {x+y}
/**
* 判定一个对象是否被定义过
*/
Object.defined = function(obj, prop){
return typeof(obj) != 'undefined' && (prop == null || obj.hasOwnProperty(prop));
};
System = {};
System.substitute = function(s, o, f){
var patternExpr = /{([^{}]*)}/g
s = s.replace(patternExpr, function(s,a){
if(!a) return '';
try{
var r = eval("with(o){"+s+"}");
return Object.defined(r)?(f?f(r):r):'';
}catch(ex){return "{"+s+"}";}
});
return s;
};
标签:字符串,格式化,函数
0
投稿
猜你喜欢
asp连接mssql2005的代码
2011-03-29 11:11:00
小谈访客浏览器分辨率
2007-10-18 13:12:00
MySQL中隐藏空间问题浅析
2009-11-24 09:04:00
DreamWeaver批处理提高篇
2007-12-03 11:34:00
用ASP和SQL实现基于Web日历源码
2010-04-24 15:52:00
一个sql查询器,自动画表格填字段
2011-04-10 10:58:00
三种不同方式连接MySQL数据库的方法及示例
2010-06-11 13:37:00
可以输入的下拉菜单
2009-01-04 14:21:00
div遮罩层实现实例代码
2009-01-11 18:38:00
asp会员系统如何实现“忘记密码”
2007-09-19 12:17:00
用FrontPage200八步快速建站
2008-09-17 10:52:00
间歇向上无缝翻滚代码
2008-05-05 12:30:00
如何把ACCESS转成SQL数据库
2007-08-11 13:51:00
xhtml+css VS div+css
2008-04-07 13:00:00
文章内链(标签)的一个思路
2009-10-31 19:03:00
JavaScript解释型模版
2009-10-19 23:12:00
web标准知识——美化段落文本 Ⅱ
2008-07-22 12:12:00
Form Post提交容量大的数据
2011-03-31 10:53:00
MooTools的Cookie类太“自作聪明”了
2008-11-13 12:59:00
ASP中3种分页显示的性能比较
2007-08-15 13:37:00