mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-03-25 09:25:47 +00:00
66 lines
3.2 KiB
Objective-C
66 lines
3.2 KiB
Objective-C
//
|
|
// NSString+marshmallows.m
|
|
// Marshmallows
|
|
//
|
|
// Created by Sami Samhuri on 11-09-03.
|
|
// Copyright 2011 Sami Samhuri. All rights reserved.
|
|
//
|
|
|
|
#import "NSString+marshmallows.h"
|
|
|
|
@implementation NSString (Marshmallows)
|
|
|
|
- (NSString *)mm_stringByTrimmingWhitespace {
|
|
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
|
}
|
|
|
|
- (NSString *)mm_firstMatch:(NSString *)pattern {
|
|
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
|
|
options:0
|
|
error:NULL];
|
|
NSRange match = [regex rangeOfFirstMatchInString:self
|
|
options:NSMatchingReportCompletion
|
|
range:NSMakeRange(0, self.length)];
|
|
return match.location == NSNotFound ? nil : [self substringWithRange:match];
|
|
}
|
|
|
|
- (NSString *)mm_stringByReplacing:(NSString *)pattern with:(NSString *)replacement {
|
|
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
|
|
options:0
|
|
error:NULL];
|
|
return [regex stringByReplacingMatchesInString:self
|
|
options:NSMatchingReportCompletion
|
|
range:NSMakeRange(0, [self length])
|
|
withTemplate:@""];
|
|
}
|
|
|
|
- (NSString *)mm_stringByReplacingFirst:(NSString *)pattern with:(NSString *)replacement {
|
|
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
|
|
options:0
|
|
error:NULL];
|
|
NSRange match = [regex rangeOfFirstMatchInString:self
|
|
options:NSMatchingReportCompletion
|
|
range:NSMakeRange(0, self.length)];
|
|
if (match.location != NSNotFound) {
|
|
NSString *rest = [self substringFromIndex:match.location + match.length];
|
|
return [[[self substringToIndex:match.location]
|
|
stringByAppendingString:replacement]
|
|
stringByAppendingString:rest];
|
|
}
|
|
return [self copy];
|
|
}
|
|
|
|
- (NSString *)mm_stringByURLEncoding {
|
|
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
|
|
(CFStringRef)self,
|
|
NULL,
|
|
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
|
|
kCFStringEncodingUTF8));
|
|
}
|
|
|
|
- (NSString *)mm_stringByURLDecoding {
|
|
return [[self stringByReplacingOccurrencesOfString:@"+" withString:@" "]
|
|
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
}
|
|
|
|
@end
|