JavaScript prototype, 扩充String对象

本文介绍了一种通过扩展JavaScript String原型来增强字符串处理能力的方法,包括去除空格、替换字符及格式化输出等功能,适用于自动化测试及网站开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值