2 // NSString+Conveniences.m
5 // Created by Mike Mayo on 10/9/10.
6 // The OpenStack project is provided under the Apache 2.0 license.
9 #import "NSString+Conveniences.h"
11 @implementation NSString (Conveniences)
14 return [self hasPrefix:@"http://"] || [self hasPrefix:@"https://"];
15 // return [[NSPredicate predicateWithFormat:@"SELF MATCHES %@",
16 // @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+"]
17 // evaluateWithObject:self];
18 // return [[NSPredicate predicateWithFormat:@"SELF MATCHES %@",
19 // @"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-\\+ ./?%&=]*)?"]
20 // evaluateWithObject:self];
23 - (NSString *)replace:(NSString *)s with:(NSString *)r {
24 if ([r isKindOfClass:[NSString class]]) {
25 return [self stringByReplacingOccurrencesOfString:s withString:r];
27 return [self stringByReplacingOccurrencesOfString:s withString:[r description]];
31 - (NSString *)replace:(NSString *)s withInt:(NSInteger)i {
32 return [self replace:s with:[NSString stringWithFormat:@"%i", i]];
35 + (NSString *)encodeToPercentEscape:(NSString *)string {
36 return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
39 (CFStringRef)@"!*'();:@&=+$,/?%#[]",
40 kCFStringEncodingUTF8)) autorelease];
43 + (NSString *)encodeToPercentEscape:(NSString *)string charactersToEncode:(NSString *)charactersToEncode {
44 return [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
47 (CFStringRef)charactersToEncode,
48 kCFStringEncodingUTF8)) autorelease];
52 + (NSString *)decodeFromPercentEscape:(NSString *)string {
53 return [((NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
56 kCFStringEncodingUTF8)) autorelease];