你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios使用常用正則表達式驗證密碼身份證手機號

ios使用常用正則表達式驗證密碼身份證手機號

編輯:IOS開發綜合

在項目中,我們在驗證用戶的輸入,最簡單的方法就是使用正則表達式了,ios系統也提供很方便的方法,讓我們可以輕松的來驗證用戶名,密碼,身份證好 ,手機號等;

下面附上我在項目中用到的正則表達式的驗證方法,

由於比較常用,大家最好封裝成+靜態的方法,便於使用:

我把常用的方法,使用靜態方法封裝到一個 Utils類裡面,直接使用類名調用即可:

頭文件:

 

//
//  Utils.h
//  AutoSizing
//
//  Created by yb on 15/2/7.
//  Copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. All rights reserved.
//

#import 

@interface Utils : NSObject
#pragma 正則匹配手機號
+ (BOOL)checkTelNumber:(NSString *) telNumber;
#pragma 正則匹配用戶密碼6-18位數字和字母組合
+ (BOOL)checkPassword:(NSString *) password;
#pragma 正則匹配用戶姓名,20位的中文或英文
+ (BOOL)checkUserName : (NSString *) userName;
#pragma 正則匹配用戶身份證號
+ (BOOL)checkUserIdCard: (NSString *) idCard;
#pragma 正則匹員工號,12位的數字
+ (BOOL)checkEmployeeNumber : (NSString *) number;
#pragma 正則匹配URL
+ (BOOL)checkURL : (NSString *) url;
@end
.m實現文件:

 

 

//
//  Utils.m
//  AutoSizing
//
//  Created by yb on 15/2/7.
//  Copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. All rights reserved.
//

#import Utils.h

@implementation Utils
#pragma 正則匹配手機號
+ (BOOL)checkTelNumber:(NSString *) telNumber
{
    NSString *pattern = @^1+[3578]+\d{9};
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:telNumber];
    return isMatch;
}


#pragma 正則匹配用戶密碼6-18位數字和字母組合
+ (BOOL)checkPassword:(NSString *) password
{
    NSString *pattern = @^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18};
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:password];
    return isMatch;
    
}

#pragma 正則匹配用戶姓名,20位的中文或英文
+ (BOOL)checkUserName : (NSString *) userName
{
    NSString *pattern = @^[a-zA-Z一-龥]{1,20};
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:userName];
    return isMatch;
    
}


#pragma 正則匹配用戶身份證號15或18位
+ (BOOL)checkUserIdCard: (NSString *) idCard
{
    NSString *pattern = @(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$);
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:idCard];
    return isMatch;
}

#pragma 正則匹員工號,12位的數字
+ (BOOL)checkEmployeeNumber : (NSString *) number
{
    NSString *pattern = @^[0-9]{12};
    
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:number];
    return isMatch;
    
}

#pragma 正則匹配URL
+ (BOOL)checkURL : (NSString *) url
{
    NSString *pattern = @^[0-9A-Za-z]{1,50};
    NSPredicate *pred = [NSPredicate predicateWithFormat:@SELF MATCHES %@, pattern];
    BOOL isMatch = [pred evaluateWithObject:url];
    return isMatch;
    
}

@end

 

原文地址:www.2cto.com

 


使用方法示例:

 

    if ([Utils checkTelNumber:@18801112020])  //匹配結果,為YES
    {
        NSLog(@手機號格式正確);
    }
    else                                        //匹配結果為NO
    {
        NSLog(@手機號格式錯誤);
    }


 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved