限制字符串常用的无非就是正则表达式
,这里我要说的是NSCharacterSet
这个类。
NSCharacterSet
常用API
// 根据一个给定的字符串获取一个NSCharacterSet对象
+ (NSCharacterSet *)characterSetWithCharactersInString:(NSString *)aString;
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;
// (取反) 相反字符串限制
@property (readonly, copy) NSCharacterSet *invertedSet;
// 常用快捷方法集合 (常用的,已满足大多数需求) */
+ controlCharacterSet
+ whitespaceCharacterSet //空格
+ whitespaceAndNewlineCharacterSe //空格和换行符
+ decimalDigitCharacterSet //0-9的数字
+ letterCharacterSet //所有字母
+ lowercaseLetterCharacterSet //小写字母
+ uppercaseLetterCharacterSet //大写字母
+ alphanumericCharacterSet //所有数字和字母(大小写不分)
+ punctuationCharacterSet //标点符号
+ newlineCharacterSet //换行
使用
只能输入数字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// 方式一
NSCharacterSet *charSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
// 方式二
// NSCharacterSet *charSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]];
NSString *filteredStr = [[string componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@""];
if ([string isEqualToString:filteredStr]) {
return YES;
}
return NO;
}
限制输入空格
NSString *str = [self.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
网友评论