API
//相反字符串限制
@property (readonly, copy) NSCharacterSet *invertedSet;
+ (NSMutableCharacterSet *)controlCharacterSet;
//空格
+ (NSMutableCharacterSet *)whitespaceCharacterSet;
//空格和换行符
+ (NSMutableCharacterSet *)whitespaceAndNewlineCharacterSet;
//0-9的数字
+ (NSMutableCharacterSet *)decimalDigitCharacterSet;
//所有字母
+ (NSMutableCharacterSet *)letterCharacterSet;
//小写字母
+ (NSMutableCharacterSet *)lowercaseLetterCharacterSet;
//大写字母
+ (NSMutableCharacterSet *)uppercaseLetterCharacterSet;
//非基础字符
+ (NSMutableCharacterSet *)nonBaseCharacterSet;
//字母数字
+ (NSMutableCharacterSet *)alphanumericCharacterSet;
//可分解字符
+ (NSMutableCharacterSet *)decomposableCharacterSet;
//非法字符
+ (NSMutableCharacterSet *)illegalCharacterSet;
//标点符号
+ (NSMutableCharacterSet *)punctuationCharacterSet;
//大写字母
+ (NSMutableCharacterSet *)capitalizedLetterCharacterSet;
//符号
+ (NSMutableCharacterSet *)symbolCharacterSet;
//换行符
+ (NSMutableCharacterSet *)newlineCharacterSet NS_AVAILABLE(10_5, 2_0);
+ (NSMutableCharacterSet *)characterSetWithRange:(NSRange)aRange;
+ (NSMutableCharacterSet *)characterSetWithCharactersInString:(NSString *)aString;
+ (NSMutableCharacterSet *)characterSetWithBitmapRepresentation:(NSData *)data;
+ (nullable NSMutableCharacterSet *)characterSetWithContentsOfFile:(NSString *)fName;
例子1
NSString *str = @"7sjf78sf990s";
NSLog(@"set----%@",[str componentsSeparatedByCharactersInSet:set]);
NSCharacterSet *invertedSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
NSLog(@"invertedSet----%@",[str componentsSeparatedByCharactersInSet:invertedSet]);
//打印结果如下图: 【可以看出invertedSet后,刚好判断条件相反】
例子2 textField只能输入数字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *charSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
NSString *filteredStr = [[string componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@""];
if ([string isEqualToString:filteredStr]) {
return YES;
}
return NO;
}
相关阅读: