一个功能更强大的字符串格式化函数
作者:月影 来源:无忧脚本 发布时间: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
投稿
猜你喜欢
- overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义
- PPT链接说实话,看到这个题目时我觉得这有什么好讨论的,肯定会是场一边倒的讨论。因为个人比较倾向于短命名,简单优雅,可能是出于程序员的洁癖,
- 今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错输入select * from
- 利用ACCESS可以用查询创建视图这一功能来进行查询分析。选择查询->在设计视图中创建查询,然后关闭弹出的表选择对话框,在下面的窗口上
- 1、应该将 CSS 放置于结构的上方(一般放置于 head 元素内)。CSS 是解释型语言,Firefox 和 IE 在等待 CSS 传输完
- 负责Web编写的前端人员,都清楚可以通过W3验证服务功能,来在线验证自己编写的XHTML代码是否正确,在验证期间,最容易出现的错误往往都是在
- 类、构造函数、原型先来说明一点:在上面的内容中提到,每一个函数都包含了一个prototype属性,这个属性指向了一个prototype对象(
- 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器。最早看到相关的报道是
- 操作实现函数: 代码如下:Function AddWater(n) Set Photo = 
- 很多现代的浏览器在地址栏的右边有个搜索框,默认的安装有 Google 搜索等。如下图所示:其实这是 OpenSearch 的一个应用,只要编
- LOAD DATA INFILE '文件地址' INTO TABLE 表名 FIELDS TERMINATED BY
- 兼容IE6的第一步就是单独对IE进行兼容,你针对IE6所写的代码只影响IE6;有几种方法可以区分开IE6:IE特有条件注释、CSS选择器、J
- 左右结构是平常页面中最经常看到的结构,简洁一些的页面就会使用边框将左右两边隔开,但往往由于左右两边的内容可能是不等高的,所以就会有一高一低的
- 在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定。 一.表空间的自由空间 通过对表空
- 很多SQL Server程序员对子查询(subqueries)的使用感到困惑,尤其对于嵌套子查询(即子查询中包含一个子查询)。现在,就让我们
- Dreamweaver MX 2004新增加了表格宽度辅助线功能,让我们在编辑网页表格的时候能清楚地看到表格中各单元的宽度以及变化,很直观。
- 代码如下:---涂聚文 Geovin Du DECLARE @myid uniqueidentifier SET @myid =
- 你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:第一种可能是你还没有理解CSS处理页面的原理。在你考虑
- 1. 检查HTML元素是否有拼写错误、是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一
- select for update 这个是行级锁 当 commit或者rollback时,锁释放 记得打开事务,比如jdbc里面 setAu