1
2
9
10
13 class com.sekati.utils.StringUtils {
14
15
21 public static function search(str:String, key:String):Boolean {
22 return (str.indexOf( key ) <= -1) ? false : true;
23 }
24
25
31 public static function searchCaseInsensitive(str:String, key:String):Boolean {
32 return StringUtils.search( str.toUpperCase( ), key.toUpperCase( ) );
33 }
34
35
42 public static function replace(str:String, oldChar:String, newChar:String):String {
43 return str.split( oldChar ).join( newChar );
44 }
45
46
51 public static function removeSpaces(str:String):String {
52 return replace( str, " ", "" );
53 }
54
55
60 public static function removeTabs(str:String):String {
61 return replace( str, "\t", "" );
62 }
63
64
69 public static function trim(str:String):String {
70 var index0:Number = 0;
71 while (str.charAt( index0 ) == " ") {
72 index0++;
73 }
74 var index1:Number = str.length - 1;
75 while (str.charAt( index1 ) == " ") {
76 index1--;
77 }
78 return str.substring( index0, index1 + 1 );
79 }
80
81
86 public static function xtrim(str:String):String {
87 var o:String = new String( );
88 var TAB:Number = 9;
89 var LINEFEED:Number = 10;
90 var CARRIAGE:Number = 13;
91 var SPACE:Number = 32;
92 for (var i:Number = 0; i < str.length ; i++) {
93 if (str.charCodeAt( i ) != SPACE && str.charCodeAt( i ) != CARRIAGE && str.charCodeAt( i ) != LINEFEED && str.charCodeAt( i ) != TAB) {
94 o += str.charAt( i );
95 }
96 }
97 return o;
98 }
99
100
105 public static function trimCamel(str:String):String {
106 var o:String = new String( );
107 for (var i:Number = 0; i < str.length ; i++) {
108 if (str.charAt( i ) != " ") {
109 if (justPassedSpace) {
110 o += str.charAt( i ).toUpperCase( );
111 justPassedSpace = false;
112 } else {
113 o += str.charAt( i ).toLowerCase( );
114 }
115 } else {
116 var justPassedSpace:Boolean = true;
117 }
118 }
119 return o;
120 }
121
122
127 public static function commaFormatNumber(inNum:Object):String {
128 var tmp:String = String( inNum );
129
130 var outString:String = "";
131 var l:Number = tmp.length;
132 for (var i:Number = 0; i < l ; i++) {
133 if (i % 3 == 0 && i > 0) {
134
135 outString = "," + outString;
136 }
137 outString = tmp.substr( l - (i + 1), 1 ) + outString;
138 }
139 return outString;
140 }
141
142
147
148 public static function firstToUpper(str:String):String {
149 return str.charAt( 0 ).toUpperCase( ) + str.substr( 1 );
150 }
151
152
157 public static function htmlEncode(str:String):String {
158 var s:String = str, a:Object = new String( );
159 a = s.split( "&" ),
160 s = a.join( "&" );
161 a = s.split( " " ),
162 s = a.join( " " );
163 a = s.split( "<" ),
164 s = a.join( "<" );
165 a = s.split( ">" ),
166 s = a.join( ">" );
167 a = s.split( "\"" ),
168 s = a.join( """ );
169 return s;
170 }
171
172
177 public static function htmlDecode(t:String):String {
178 t = t.split( "®" ).join( "¨" );
179 t = t.split( "©" ).join( "©" );
180 t = t.split( "’" ).join( "'" );
181 t = t.split( "“" ).join( "\"" );
182 t = t.split( "”" ).join( "\"" );
183 t = t.split( "…" ).join( "..." );
184 t = t.split( "·" ).join( "*" );
185 t = t.split( "–" ).join( "-" );
186 t = t.split( "™" ).join( "(TM)" );
187 t = t.split( "è" ).join( );
188 t = t.split( "é" ).join( "Ž." );
189 t = t.split( "•" ).join( "-" );
190 t = t.split( "&" ).join( "&" );
191 return t;
192 }
193
194
199 public static function stripZeroOnFloat(n:Number):String {
200 var str:String = "";
201 var a:Array = String( n ).split( "." );
202 if (a.length > 1) {
203 str = (a[0] == "0") ? "." + a[1] : String( n );
204 } else {
205 str = String( n );
206 }
207 return str;
208 }
209
210
215 public static function padZeroOnFloat( n:Number ):String {
216 return ( n > 1 || n < 0 ) ? String( n ) : ( "0." + String( n ).split( "." )[1] );
217 }
218
219
228 public static function floatToString(n:Number):String {
229 var s:String = String( n );
230 return (n < 1 && (s.indexOf( "." ) <= -1 || s.indexOf( "e" ) <= -1)) ? "0." + String( n + 1 ).split( "." )[1] : s;
231 }
232
233
238 public static function stripZeroAndRepairFloat(n:Number):String {
239 var str:String;
240 var tmp:String;
241 var isZeroFloat:Boolean;
242
243 if(n < 1) {
244 tmp = String( (n + 1) );
245 isZeroFloat = true;
246 } else {
247 tmp = String( n );
248 isZeroFloat = false;
249 }
250
251 var a:Array = tmp.split( "." );
252 if (a.length > 1) {
253 str = (a[0] == "1" && isZeroFloat == true) ? "." + a[1] : tmp;
254 } else {
255 str = tmp;
256 }
257 return str;
258 }
259
260
265 public static function randChar(amount:Number):String {
266 var str:String = "";
267 for(var i:Number = 0; i < amount ; i++) str += chr( Math.round( Math.random( ) * (126 - 33) ) + 33 );
268 return str;
269 }
270
271
276 public static function randLowerChar(amount:Number):String {
277 var str:String = "";
278 for(var i:Number = 0; i < amount ; i++) str += chr( Math.round( Math.random( ) * (122 - 97) ) + 97 );
279 return str;
280 }
281
282
287 public static function randNum(amount:Number):String {
288 var str:String = "";
289 for(var i:Number = 0; i < amount ; i++) str += chr( Math.round( Math.random( ) * (57 - 48) ) + 48 );
290 return str;
291 }
292
293
298 public static function randSpecialChar(amount:Number):String {
299 var str:String = "";
300 for(var i:Number = 0; i < amount ; i++) str += chr( Math.round( Math.random( ) * (64 - 33) ) + 33 );
301 return str;
302 }
303
304
309 public static function stripTags(str:String):String {
310 var s:Array = new Array( );
311 var c:Array = new Array( );
312 for (var i:Number = 0; i < str.length ; i++) {
313 if (str.charAt( i ) == "<") {
314 s.push( i );
315 } else if (str.charAt( i ) == ">") {
316 c.push( i );
317 }
318 }
319 var o:String = str.substring( 0, s[0] );
320 for (var j:Number = 0; j < c.length ; j++) {
321 o += str.substring( c[j] + 1, s[j + 1] );
322 }
323 return o;
324 }
325
326
331 public static function detectBr(str:String):Boolean {
332 return (str.split( "<br" ).length > 1) ? true : false;
333 }
334
335
340 public static function toDoubleQuote(str:String):String {
341 var sq:String = "'";
342 var dq:String = String.fromCharCode( 34 );
343 return str.split( sq ).join( dq );
344 }
345
346
351 public static function toSingleQuote(str:String):String {
352 var sq:String = "'";
353 var dq:String = String.fromCharCode( 34 );
354 return str.split( dq ).join( sq );
355 }
356
357
365 public static function toNumeric(str:String):String {
366 var len:Number = str.length;
367 var result:String = "";
368 for (var i:Number = 0; i < len ; i++) {
369 var code:Number = str.charCodeAt( i );
370 if (code >= 48 && code <= 57) {
371 result += str.substr( i, 1 );
372 }
373 }
374 return result;
375 }
376
377 private function StringUtils() {
378 }
379 }