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  }