校驗(yàn)字符串

目錄:
1、校驗(yàn)字符串是否為空
2、判斷字符串是否符合郵政編碼格式
3、判斷字符串是否全是整數(shù)
4、判斷字符串是否全部是字符
5、判斷用戶名是否符合要求
6、判斷密碼是否符合要求
7、判斷電話號(hào)碼是否合法
8、判定string第一位是否從A-Z
9、驗(yàn)證數(shù)字及位數(shù)
10、驗(yàn)證字母及位數(shù)
11、驗(yàn)證數(shù)字或字母
12、驗(yàn)證郵箱格式是否正確

1、是否為空,返回 YES|NO

+(BOOL)isEmptyString:(NSString*)string
{
    if (string == nil) 
    {
        // 如果字符串為空,返回YES
        return YES;
    }

    //去空格之后判斷l(xiāng)ength是否為0(此判斷方法也可用于判斷其他字符)
    NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
    NSString *content = [string stringByTrimmingCharactersInSet:whitespace];

    if ([content length] == 0)
    {
         return YES;//length為0,返回YES
    }
    
    return NO;//其余情況返回NO
}

2、判斷字符串是否符合郵政編碼格式

+ (BOOL)checkZipCode:(NSString *)coder
{
    if (coder.length != 6)
    {
         return NO;//不是6位,不符合。
    }
    
    NSError *error = NULL;
    NSString *ruleString = @"[0-9]\\d{5}(?!\\d)";//郵政編碼規(guī)則
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:ruleString
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];
    NSUInteger numberOfMatches = [regex numberOfMatchesInString:coder
                                                        options:0
                                                          range:NSMakeRange(0, [coder length])];

    if(numberOfMatches == 1)
    {
        return YES;//numberOfMatches為1時(shí)符合規(guī)則。
    }
    else
    {
        return NO;
    }
}

3、判斷輸入字符串是否全部是整數(shù)

+ (BOOL)isPureInt:(NSString *)string
{
    NSScanner *scan = [NSScanner scannerWithString:string];

    int value;
  
    BOOL scanIntVal = [scan scanInt:&value] ;
    BOOL scanAtEnd = [scan isAtEnd];
    BOOL intValue = [string intValue] > 0;

    //滿足以上三個(gè)條件則是整數(shù)
    return (intVal && scanAtEnd && intValue);
}

4、判斷輸入是否全部都是字符(不允許有漢字、數(shù)字等,不能為空)

+ (BOOL)checkAllIsLetter:(NSString *)psw
{
    BOOL hasOther = NO;
    int length = [psw length];

    if (length == 0) 
    {
        return NO;//輸入字符串為空
    }
    
    //判斷是否有漢字
    for (int i = 0; i < length; i++) 
    {
        NSRange range = NSMakeRange(i, 1);
        NSString *subString = [psw substringWithRange:range];
        const char *cString = [subString UTF8String];
        
        if (strlen(cString) == 3)
        {
            return NO;//有漢字
        }
    }
    
    //判斷是否含有數(shù)字
    const char *s = [psw UTF8String];//轉(zhuǎn)化成C語(yǔ)言字符串

    for (int i = 0; i < length; i++)
    {
        if (s[i] >= '0' && s[i] <= '9')
        {
            hasOther = YES;//含有數(shù)字
        }
    }

    return !hasOther;
}

5、判斷用戶名是否符合要求( 1:小于30位。2:數(shù)字+字母。3:不能包含其它字符)

+ (BOOL)checkUserName:(NSString *)psw
{
    BOOL hasOther = NO;
    int length = [psw length];
    
    //判斷是否是小于30位
    if(length > 30)
    {
        return NO;
    }
    
    //判斷是否有漢字
    for (int i = 0; i < length; i++)
    {
        NSRange range = NSMakeRange(i, 1);
        NSString *subString = [psw substringWithRange:range];
        const char *cString = [subString UTF8String];

        if  (strlen(cString) == 3)
            return NO;
    }

    //判斷是否是數(shù)字+字母
    const char *s=[psw UTF8String];
    for(int i = 0;i < length; i++)
    {
        if (s[i] >= '0' && s[i] <= '9')
            continue;
        else if (s[i] >= 'a' && s[i] <= 'z')
            continue;
        else if (s[i] >= 'A' && s[i] <= 'Z')
            continue;
        else
            hasOther = YES;
    }
    
    if(hasOther)
        return NO;
    else
        return YES;
}

6、判斷密碼是否符合要求(1:8-16位置。2:數(shù)字+字母。3:不能全是數(shù)字或全是字母)

+ (BOOL)checkPsw:(NSString *)psw
{
    BOOL hasNum = NO;
    BOOL hasLetter = NO;
    BOOL hasOther = NO;
    
    int length = [psw length];
    
    //判斷是否是8-16位
    if (length > 16 || length < 8)
        return NO;
    
    //判斷是否有漢字
    for (int i = 0; i < length; i++)
    {
        NSRange range = NSMakeRange(i, 1);
        NSString *subString = [psw substringWithRange:range];
        const char *cString = [subString UTF8String];

        if (strlen(cString) == 3)
            return NO;
    }
    
    //判斷是否是數(shù)字+字母
    const char *s=[psw UTF8String];
    for (int i = 0;i < length; i++)
    {
        if (s[i] >= '0' && s[i] <= '9')
            hasNum = YES;
        else if (s[i] >= 'a' && s[i] <= 'z')
            hasLetter = YES;
        else if (s[i] >= 'A' && s[i] <= 'Z')
            hasLetter = YES;
        else
            hasOther = YES;
    }
    
    if (hasNum && hasLetter && !hasOther)
        return YES;
    else
        return NO;
}

7、判斷電話號(hào)碼是否合法

+ (BOOL)isMobileNumber:(NSString *)mobileNum
{
    /**
     * 手機(jī)號(hào)碼
     * 移動(dòng):134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
     * 聯(lián)通:130,131,132,152,155,156,185,186
     * 電信:133,1349,153,180,189
     */
    //NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
    /**
     10         * 中國(guó)移動(dòng):China Mobile
     11         * 134[0-8],135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,17**
     12         */
    NSString *CM = @"^1(34[0-8]|(3[5-9]|5[0127-9]|8[23478]|7[0-9])\\d)\\d{7}$";
    /**
     15         * 中國(guó)聯(lián)通:China Unicom
     16         * 130,131,132,155,156,185,186,17**
     17         */
    //modify by zhangcz, 添加聯(lián)通4G,176的號(hào),而且沒(méi)有152的號(hào)
    NSString *CU = @"^1(3[0-2]|5[56]|8[56]|7[6])\\d{8}$";
    /**
     20         * 中國(guó)電信:China Telecom
     21         * 133,1349,153,180,189,17**
     22         */
    NSString *CT = @"^1((33|53|8[09]|7[0-9])[0-9]|349)\\d{7}$";
    
    //NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
    NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
    NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
    
    if (([regextestcm evaluateWithObject:mobileNum] == YES)
        || ([regextestct evaluateWithObject:mobileNum] == YES)
        || ([regextestcu evaluateWithObject:mobileNum] == YES))
    {
        return YES;
    }
    else
    {
        return NO;
    }
}

8、判定string第一位是否是從A-Z

/*
 *判定string第一位是否是從A-Z
 */
+ (BOOL)isAlphabet:(NSString *)firstAlphabet
{
    NSString *IDENTITYNUM= @"^[A-Z]$";
    NSPredicate *regextestBankNum = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",IDENTITYNUM];

    if ([regextestBankNum evaluateWithObject:firstAlphabet] == YES)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}

9、驗(yàn)證數(shù)字及位數(shù)(numStr:需要驗(yàn)證的字符串,count:需要驗(yàn)證的位數(shù))

+ (BOOL)isNumber:(NSString*)numStr count:(int)count
{
    NSString * regex = @"^[0-9]*$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    if ([pred evaluateWithObject:numStr] && numStr.length == count) 
    {
        return YES;
    }

    return NO;
}

10、驗(yàn)證字母及位數(shù)

+(BOOL)isLetter:(NSString *)letterStr count:(int)count
{
    NSString *regex = @"^[A-Za-z]*$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    if ([pred evaluateWithObject:letterStr] && letterStr.length == count) 
    {
        return YES;
    }

    return NO;
}

11、驗(yàn)證是數(shù)字或字母

+(BOOL)isLetterOrNum:(NSString*)str count:(int)count
{
    NSString * regex = @"^[A-Za-z0-9]*$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    if ([pred evaluateWithObject:str] && str.length == count)
    {
        return YES;
    }

    return NO;
}

12、判斷郵箱格式是否正確

+ (BOOL)isValidateEmail:(NSString*)email
{
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];

    return [emailTest evaluateWithObject:email];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、字符串在C#中,字符串是一系列不可修改的Unicode字符,創(chuàng)建字符串后,就不能修改它。要?jiǎng)?chuàng)建字符串,最常用的...
    CarlDonitz閱讀 1,380評(píng)論 0 2
  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號(hào),空格,換行符,漢字等...
    獅子挽歌閱讀 2,277評(píng)論 0 9
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒(méi)獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,243評(píng)論 0 20
  • 這天下午,陽(yáng)光明媚,伴隨著淡淡的清風(fēng)送來(lái)的花香,遠(yuǎn)遠(yuǎn)望去就見(jiàn)一對(duì)璧人坐在庭院中,一人沏著茶,一人看著書(shū),好不愜意。...
    黛韻閱讀 248評(píng)論 0 0
  • 一個(gè)陽(yáng)光明媚的早上,我們要舉行運(yùn)動(dòng)會(huì)啦!我們穿著統(tǒng)一的衣服來(lái)到了大操場(chǎng),帶著潔凈的手套,有說(shuō)有笑真開(kāi)心! 我們...
    佳妹兒CC閱讀 231評(píng)論 0 0

友情鏈接更多精彩內(nèi)容