JavaScript prototype, 扩充String对象

来源:互联网 发布:echarts读取json文件 编辑:程序博客网 时间:2024/06/04 20:00

 Js功能强大灵活,不仅可以用来做网页客户端,还可以写asp后台代码,在Windows中与WSH的环境中更是强大。

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

 

扩充String对象的功能。

为String增加三个成员函数

  1. trim
  2. remove
  3. format --- 类似C函数的sprintf

和一个静态函数

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

 
原创粉丝点击