正則表達 簡要記錄

    搞開發一年多了,總是學習別人的。今天開始也想記錄下自己平時的一些積累,方便以後使用和學習。也爲有需要得朋友提供一些資料。 
    第一篇主要枚舉一些主流的正則表達式可能在很多項目中都會用到的。
// 登錄名驗證:4到16位,數字或英文或下劃線
#define REG_LOGINNAME_STR   @"^[a-zA-Z0-9_\u4e00-\u9fa5]{4,16}+$"
// 真實姓名驗證:漢字 [\u4e00-\u9fa5]
#define REG_NICKNAME_STR    @"^([\u4e00-\u9fa5]){0,}$" 
// 密碼驗證:6到16位數字和英文
#define REG_PASSWORD_STR    @"^[A-Za-z0-9]{6,16}+$"
// 郵箱驗證
#define REG_MAIL_STR        @"\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-zA-Z]{2,6})\\b"
// 手機號碼驗證
#define REG_PHONENUM_STR    @"^((13[0-9])|(147)|(15[^4,\\D])|(17[^4,\\D])|(18[0-9]))\\d{8}$"
// 身份證驗證:15或18位
#define REG_IDCARDNUM_STR   @"\\d{15}|\\d{18}"

//銀行卡號 11.17   16位或19位
#define REG_BANKCARD_STR    @"\\d{16}|\\d{19}"
  下面舉個簡單例子爲大家:

這裏寫圖片描述

最常用的我們一般對手機號碼以及賬戶密碼的輸入限制:
self.textfPhoneNum :輸入手機號的textfield.
self.textfLoginPassword : 輸入密碼的textfield.

//正則 手機號
- (NSString *) getPhoneNumber {
    NSString *phoneNumber = [self.textfPhoneNum text];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", REG_PHONENUM_STR];
    if (![predicate evaluateWithObject: phoneNumber]) {
        return nil;
    }
    return phoneNumber;
}
//不支持特殊符號的6-16位數字或字母
- (NSString *) getPassWord {
    NSString * password = [self.textfLoginPassword text];
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",REG_PASSWORD_STR];
    if (![predicate evaluateWithObject:password]) {
        return nil;
    }
    return password;

}

點擊對應響應時間時:
- (IBAction)LoginBtnClick:(id)sender {
    NSLog(@"登陸");
    NSString * username =[self getPhoneNumber];//調上面的方法。
    if (nil == username || username.length < 1) {
        [self showPromptText: @"請輸入合法的手機號碼"hideAfterDelay: 1.7];
        return;
    }
    NSString *loginpwdstr = [self getPassWord];
    if (nil == loginpwdstr || loginpwdstr.length < 1)
    {
        [self showPromptText: @"請輸入6-16位數字或英文字母密碼!" hideAfterDelay: 1.7];
        return;
    }

    NSLog(@"將數據上傳到服務器");
    NSMutableDictionary *dict  = [NSMutableDictionary dictionary];
    [dict setObject:username forKey:@"phone"];
    [dict setObject:loginpwdstr forKey:@"password"];
    [memberMan loginUsername:dict];

}

簡單的流程就是這樣,其他的類型可以相似的對應修改。
枚舉裏的正則也可以進行對應的修改。 錯誤之處望指正。
下班!
2016.01.11

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章