美文网首页
限制UITextField限制只能输入数字

限制UITextField限制只能输入数字

作者: 梦里桃花舞倾城 | 来源:发表于2019-05-31 09:48 被阅读0次

限制字符串常用的无非就是正则表达式,这里我要说的是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]];

相关文章

网友评论

      本文标题:限制UITextField限制只能输入数字

      本文链接:https://www.haomeiwen.com/subject/tloitctx.html