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);