Mootools常用方法扩展(二)
作者:Fdream 来源:Fdream博客 时间:2009-01-11 18:22:00
继续Mootools常用方法扩展,依然还是String类的扩展。
方法:format
说明:一个非常简单的format方法,和C#里面的format类似。这个方法会用参数来依次替换字符串中用大括号{}括起来的数字,比如用第一个参数替换{0},用第二个参数替换{1}等等。
参考代码:
String.implement({
format: function() {
///<summary>
/// 格式化一个字符串,替换其中用大括号包含的数字及大括号,类似C#的format
/// 如用第一个参数替换{0}
///</summary>
///<param name="values..." type="String">相关参数</param>
///<returns type="STRING" />
var s = this;
for (var i = 0; i < arguments.length; i++) {
s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
}
return s;
}
简单示例:
参考代码:
// 下面将返回 'my name is Fdream, I'm a boy'
var a = 'my name is {0}, I'm a {1}'.format('Fdream', 'boy');
方法:formatBy
说明:好,这个是一个复杂而强大的format方法,几乎可以随心所欲地对你的字符串进行格式化,用模板处理时非常方便。不过注意这里的格式稍微变化了一下,是替换类似${abc}这样的字符串。其中,abc是参数对象的一个属性,${abc}讲被参数传进来的对象的abc属性的值给替换掉。在这个里面还可以使用不同的分隔符,你可以对这个属性值进行函数处理或者截取。具体请参考后面的示例。
参考代码:
String.implement({
formatBy: function(obj, funs) {
///<summary>
/// 用对象格式化一个字符串
/// 可以对格式化的字符中进行指定的函数替换或者截取
///</summary>
///<param name="obj" type="object">用来替换格式的对象</param>
///<param name="funs" type="object">相应的替换函数</param>
///<returns type="STRING" />
funs = funs || {};
return this.replace(/\$\{([^\}]+)\}/g, function(a, b) {
var c = b.split(':');
var d = c[0].split('|');
if (d.length == 1) {
if (d[0] in obj) return c[1] ? obj[d[0]].truncate(c[1].toInt()) : obj[d[0]];
} else {
var f = d[1].trim();
if ((f in funs) && (d[0] in obj)) {
var r = funs[f](obj[d[0]]);
return c[1] ? r.truncate(c[1].toInt()) : r;
}
}
return a;
})
}
}
简单示例:
先来一个简单的用法,和上面的format类似:
参考代码:
var obj = { 'name': 'PPLive', 'age': '4' };
var fmt = '${name} is ${age} years old now!';
再来一个复杂一点的应用:
参考代码:
var funs = {
sexFun: function(sex) {
switch (sex) {
case 1:
case '1':
return 'boy';
default:
return 'girl';
}
}
};
var obj = { 'name': 'Tom', 'sex': '1', 'address': 'Zhangjiang High Tech Park' };
var fmt = '${name} is a ${sex|sexFun}, address is ${address:14}';
// 现在fmt就等于 'Tom is a boy, address is Zhangjiang Hig'
标签:Mootools,扩展,方法,JavaScript
0
投稿
猜你喜欢
浅谈MySQL的存储引擎之表类型存储
2011-05-05 08:10:00
asp彩色验证码的制作详解
2007-09-18 13:22:00
HTML 5 V.S. XHTML 2:HTML5倍受青睐,XHTML2处境尴尬
2009-06-08 12:57:00
ASP获取网址或当前地址代码
2008-04-07 20:19:00
FckEditor配置手册中文教程详细说明
2010-02-28 12:37:00
减少用户的思考
2010-09-07 12:14:00
ASP存储过程开发应用详解第1/2页
2011-04-07 11:16:00
文案是网站的性格
2009-09-02 13:05:00
asp动态页面生成html页面
2008-10-24 09:03:00
怎样从旧版本SQL Server中重新存储数据
2009-01-15 13:23:00
打造设计你自己的字体 Ⅱ
2008-03-14 07:48:00
Oracle7.X 回滚表空间数据文件误删除处理方法
2010-07-28 12:54:00
sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)
2011-09-30 11:49:22
jQuery 1.4官方中文手册[译]
2010-01-20 10:46:00
Oracle与MySQL删除字段时对索引和约束的处理
2008-12-26 16:41:00
Oracle字符集修改查看方法
2009-11-05 21:45:00
如何将数据访问页绑定到断开连接的 ADO 记录集上?
2009-12-03 20:07:00
百度在线手写输入法
2010-02-03 14:27:00
sql如何实现复合查询?
2010-05-19 21:25:00
Asp 编码互转的研究和实现代码
2011-03-30 10:44:00