您的位置:首页 > Web前端 > JavaScript

JavaScript prototype, 扩充String对象

2011-10-28 09:25 357 查看
Js功能强大灵活,不仅可以用来做网页客户端,还可以写asp后台代码,在Windows中与WSH的环境中更是强大。

以下代码只是我自编自用的Js类framework的一部分,经常被我用来做自动化测试,网站前后台。

扩充String对象的功能。

为String增加三个成员函数

trim
remove
format --- 类似C函数的sprintf

和一个静态函数

parseString

/* javascript prototype.
* Authors: perry <ppsoft268@gmail.com>
* Date   : April 11, 2009
*/

MY.ClassFactory.extend(String.prototype,
{
//public
trim: function() { return this.replace(/^\s+|\s+$/g, ''); },

//public
remove: function(s) { return this.replace(new RegExp(s, 'g'), ''); },

//public
format: function()
{
var o = this,
c = 0,
z = '';
b = arguments;
this.replace(/\%(\d*)(d|x|s)+?/gi, function(r0, r1, r2)
{
var n = parseInt(r1),
x = '',
k = r2,
v = 0;
if ( c < b.length )
{
if ( n != n )
n = 0;
for ( var i = 0; i < n; i++ )
x += '0';
switch ( k )
{
case 'X':
case 'x':
case 'd':
z = String.parseString(b[c]);
v = parseInt(z.replace(/[-\+]+/g,''));
if ( v != v )
v = 0;
x += v.toString(k == 'd' ? 10 : 16);
if ( n > 0 )
x = x.substr(x.length - n);
if ( k == 'X' )
x = x.toUpperCase();
if (/-\d+/g.test(z))
x = '-' + x;
break;
case 's':
x = b[c];
break;
default:
x = '';
}
}
c++;
o = o.replace(new RegExp(r0, 'i'), x);
});
return o;
}
}, false);

MY.ClassFactory.extend(String,
{
//public
parseString: function(s)
{
if ( typeof s == 'boolean' )
return s.toString();
if ( typeof s == 'number' )
return s.toString();
if (s)
return (new String(s)).valueOf();
return '';
}
}, false);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: