• 判断输入的字符串是否为 纯数字 还是 纯字母


    汇总:

    • NSScanner: NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串。可以在创建NSScaner时指定它的string属性,然后scanner会按照你的要求从头到尾地扫描这个字符串的每个字符。
    • NSCharacterSet:主要用来判断已知字符串是否包含制定字符集,而不可以用来保存字符串。

    1.使用NSScanner来判断

    //判断是否为整形:
    - (BOOL)isPureInt:(NSString*)string{
        NSScanner* scanner = [NSScanner scannerWithString:string];
        int val;
        return[scan scanInt:&val] && [scan isAtEnd];
     }
    
    //判断是否为浮点形:
    - (BOOL)isPureFloat:(NSString*)string{
        NSScanner* scan = [NSScanner scannerWithString:string];
        float val;
        return[scan scanFloat:&val] && [scan isAtEnd];
    }
    
    if( ![self isPureInt:str1] || ![self isPureFloat:str1]) {
        alert.text = @"警告:含非法字符,请输入纯数字!";
        return;
    }



    2.使用NSCharacterSet

    • (NSCharacterSet *)controlCharacterSet; //控制符
    • (NSCharacterSet *)whitespaceCharacterSet; //空格
    • (NSCharacterSet *)whitespaceAndNewlineCharacterSet;//首位空格
    • (NSCharacterSet *)decimalDigitCharacterSet; //十进制数字
    • (NSCharacterSet *)letterCharacterSet; //文字
    • (NSCharacterSet *)lowercaseLetterCharacterSet; //小写字母
    • (NSCharacterSet *)uppercaseLetterCharacterSet; //大写字母
    • (NSCharacterSet *)nonBaseCharacterSet; //非基础
    • (NSCharacterSet *)alphanumericCharacterSet; //字母数字
    • (NSCharacterSet *)decomposableCharacterSet; //可分解
    • (NSCharacterSet *)illegalCharacterSet; //非法
    • (NSCharacterSet *)punctuationCharacterSet; //标点
    • (NSCharacterSet *)capitalizedLetterCharacterSet; //大写
    • (NSCharacterSet *)symbolCharacterSet; //符号
    • (NSCharacterSet *)newlineCharacterSet NS_AVAILABLE(10_5, 2_0);//换行符
    //判断是否是纯字母
    - (BOOL)isPureCharacters:(NSString *)string{
        string = [string stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]]; 
        if(string.length > 0) { 
            return NO; 
        } 
        return YES;
    }
    
    //判断是否是纯数字
    - (BOOL)isPureNum:(NSString *)string{ 
        string = [string stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]]; 
        if(string.length > 0) { 
            return NO; 
        } 
        return YES;
    }
    
    //判断是否包含连续的数组或字母,yes为包含
    - (BOOL)rangeString:(NSString *)string { 
        BOOL result = NO; 
        for (int i = 0; i < string.length; i++) { 
            if (string.length - i < 4 ) { 
                break;
            } 
            NSString *newStr = [string substringWithRange:NSMakeRange(i, 4)]; 
            if ([self isPureCharacters:newStr] || [self isPureNum:newStr]) { 
                NSLog(@"%@",newStr); 
                result = YES; break; 
            } 
        } 
        return result;
    }
  • 相关阅读:
    [MATLAB]Debut-不知名的线性变换
    [Raspberry]使用笔记
    [Algorithm]一切始于ADT-表达式计算
    [python]用request库来处理Http协议-收集北航表白墙内的数据
    [python]os库与shutil库与操作系统的交互-整理硬盘中Vivaldi的作品
    这是一篇使用Live Writer 发布的文章
    [python]re库(正则表达式)的小练习-抓取北航教务处通知列表
    [AVR]使用AVR单片机驱动舵机
    [Python]urllib库的简单应用-实现北航宿舍自动上网
    [Scrapy][转][未完成]关于scrapy命令
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5844381.html
Copyright © 2020-2023  润新知