[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/js/dynapi/ext/ -> functions.string.js (source)

   1  /*
   2      DynAPI Distribution
   3      dynapi.functions.String extension    
   4  */
   5  
   6  var f = dynapi.functions;
   7  f.String = {}; // used by dynapi.library
   8  
   9  
  10  // String Functions --------------------------------
  11  
  12  f.sprintf = function(t){
  13      var ar = arguments;
  14      var i=1,inx = t.indexOf("%s");
  15      while(inx>=0){
  16          t = t.substr(0, inx) + ar[i++] + t.substr(inx+2);
  17          inx = t.indexOf("%s");
  18      }
  19      return t;
  20  };
  21  f.strRepeat = function(s,n) {
  22      if(!s) return '';
  23      var i,a=[];
  24      for(i=1;i<=n;i++){
  25          a[a.length]=s;
  26      }
  27      return a.join('');
  28  };
  29  f.strReverse = function(s) {
  30      if(!s) return '';
  31      var a=(s+'').split('');
  32      a.reverse();
  33      return a.join('');
  34  };
  35  f.strStuff = function(s,v,index) {
  36      if(!s) return '';    
  37      if (index==null) s=s+v+'';
  38      else {
  39          var t1=t2=s+'';
  40          s=t1.substr(0,index)+v+t2.substr(index,t2.length-index);
  41      }
  42      return s;
  43  };
  44  f.trim = function(s,dir){
  45      if(!s) return;
  46      else s+=''; // make sure s is a string
  47      dir=(dir)? dir:'<>';
  48      if(dir=='<'||dir=='<>') s=s.replace(/^(\s+)/g,'');
  49      if(dir=='>'||dir=='<>') s=s.replace(/(\s+)$/g,'');
  50      return s;
  51  };
  52  f.limitString = function (s,max)
  53  {
  54      if (!s) return s;
  55      else s+='';
  56  
  57      // Do not process HTML tags \\
  58      var tag = new RegExp(/[<][^>]*[>]/g);
  59      var special = new RegExp(/[&][^;]*;/g);
  60      var m, count=0;
  61      var tags = new Array();
  62      var specials = new Array();
  63  
  64      var r_s = s.replace(/[<][^>]*[>]/g,'\xFE').replace(/[&][^;]*;/g,'\xFF');
  65      
  66      while (m = tag.exec(s))
  67      {
  68          tags[tags.length] = m[0];
  69          max++;
  70      }
  71  
  72      while (m = special.exec(s))
  73      {
  74          specials[specials.length] = m[0];
  75          max += 2;
  76      }
  77  
  78      var i;
  79      var count = 0;
  80      var r_final = '';
  81      for (i=0; i<r_s.length;i++)
  82      {
  83          if (r_s[i] == '\xFF')
  84          {
  85              r_final += r_s.charAt(i);
  86          }
  87          else if (r_s[i] == '\xFE')
  88          {
  89              r_final += r_s.charAt(i);
  90              count++;
  91          }
  92          else if (count <= max)
  93          {
  94              r_final += r_s.charAt(i);
  95              count++;
  96          }
  97      }
  98  
  99      if (count > max)
 100      {
 101          r_final += '...';
 102      }
 103      
 104      for (i=0; i<tags.length; i++)
 105      {
 106          r_final = r_final.replace(/\xFE/,tags[i]);
 107      }
 108  
 109      for (i=0; i<specials.length; i++)
 110      {
 111          r_final = r_final.replace(/\xFF/,specials[i]);
 112      }
 113  
 114      return r_final;
 115  }


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7