美文网首页iOSiOS征服iOS
iOS中判断输入的字符串是否全为数字

iOS中判断输入的字符串是否全为数字

作者: suncheng | 来源:发表于2017-01-05 02:43 被阅读9520次

    有以下三种方法:

    1、利用NSCharacterSet的stringByTrimmingCharactersInSet方法。

    stringByTrimmingCharactersInSet函数可以过滤字符串中的指定特殊符号,如下我们指定输入的字符串过滤掉十进制数字,只要判断剩下的字符串是否为空就行,为空则都是数字,反之不然。

    - (BOOL)isNum:(NSString *)checkedNumString {
        checkedNumString = [checkedNumString stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];
        if(checkedNumString.length > 0) {
            return NO;
        }
        return YES;
    }
    

    2、用NSScanner类来判断

    NSScanner是一个类,用于在字符串中扫描指定的字符。
    参考链接

    - (BOOL)isPureInt:(NSString*)string{
        NSScanner* scan = [NSScanner scannerWithString:string];
        int val;
        return[scan scanInt:&val] && [scan isAtEnd];
    }
    

    3、正则

    - (BOOL) deptNumInputShouldNumber:(NSString *)str
    {
       if (str.length == 0) {
            return NO;
        }
        NSString *regex = @"[0-9]*";
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
        if ([pred evaluateWithObject:str]) {
            return YES;
        }
        return NO;
    }
    

    相关文章

      网友评论

      • a群:@"[0-9]*" 这个正则 表示至少0个 ,那么 空的字符串 无校验。。。
      • amisarex:- (BOOL)isPureInt: (NSString *)str {
        return str.length == @([str integerValue]).stringValue.length;
        }
      • amisarex:还有一种,虽然有局限性,但是很好理解
      • Dwyane_Coding:学好正则还是比较必要的,曾经我就花了几个小时去学它
        suncheng:@DWade_Coding 这个得学
      • 9ff81828ec00:谢谢!今天用到了才发现自己想不出好方法来判断~
        suncheng:@小样和牛牛 :smile:

      本文标题:iOS中判断输入的字符串是否全为数字

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