一个功能更强大的字符串格式化函数
作者:月影 来源:无忧脚本 发布时间: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;
};


猜你喜欢
- 1.Django框架Django是一个开放源代码的Web应用框架,由Python写成。它采用 了MVC的框架模式,即模型(M)、视图(V)和
- 作者:F. Permadi译者:Sheneyan(子乌)英文原文: INTRODUCTION TO JavaScript Functions
- 这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 1.安装vue-cli 3.0npm install -g @vue/cli# oryarn global add @vue/cli安装成功
- 对于字典的操作,本篇介绍的是在其中添加值的方法,下面带来详细的介绍。1、通过键=值的方式进行添加。如果键存在,则会将旧的值进行覆盖,如果不存
- 需要在两个文件中实现:首先,在talker.asp(在线名单)中做如下处理:<%p1=trim(application("v
- function getElementsByClassName(elem_name,elem_tags) { //elem_name:查询的
- 安装pip insatll Pyinstaller参数pyinstaller -Fw main.py参数概述-F,-onefile打包一个单
- 这篇文章主要介绍了如何基于python生成list的所有的子集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 优先级两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。首先明确两个概念:LEFT JOIN 关
- 本文进通过实例,讲述通过 prototype 自定义方法的过程,旨在抛砖引玉,如果不对的地方,欢迎指正!prototype 是在 IE 4
- 简介pygame模块用于变换Surface,Surface变换是一种移动或调整像素大小的操作。所有这些函数都是对一个Surface进行操作,
- 前言:随着企业应用的不断迭代,不断扩大,应用的发布发布可能涉及多个团队,如pc端,手机端,小程序端等等。应用发布也就成为了一项高风险,高压力
- 如下所示:#提取目录下所有图片,更改尺寸后保存到另一目录from PIL import Imageimport os.pathimport
- 首先我是从淘宝进去,爬取了按销量排序的所有(100页)女装的列表信息按综合、销量分别爬取淘宝女装列表信息,然后导出前100商品的 link,
- 这篇文章主要介绍了Vue子组件内的props对象里的default参数是如何定义Array、Object、或Function默认值的正确写法
- 如下所示:#求一个数的最大约数(不算本身)def getmaxnum(n): num = n //2 while n
- 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于jquery
- //设置已存在表中字段为auto_incrementALTER TABLE tablename change id id int(2) no
- ubuntu 14.04 + python3.4 + chrome, 在浏览器中查看tensorboard, 发现出了graph,其他的数据