[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
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 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |