#import "ViewController.h" @interface ViewController ()<UITextFieldDelegate> @property (nonatomic , strong) UITextField *textField; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor whiteColor]; [self.view addSubview:self.textField]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark delegateTextField -(void)textFieldDidEndEditing:(UITextField *)textField { BOOL email = [self validateEmail:textField.text]; BOOL mobile = [self validateMobile:textField.text]; if(email || mobile){ UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"正確手機郵箱號" message:@"ok" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alert show]; } else{ UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"錯誤手機郵箱號" message:@"格式錯誤號碼" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alert show]; } } -(BOOL)textFieldShouldReturn:(UITextField *)textField { [self.textField resignFirstResponder]; return YES; } #pragma mark -(UITextField *)textField { if (!_textField){ _textField = [[UITextField alloc]initWithFrame:CGRectMake(30,100, 200, 40)]; [_textField setBorderStyle:UITextBorderStyleRoundedRect]; _textField.placeholder = @"手機/郵箱"; _textField.delegate = self; _textField.returnKeyType = UIReturnKeyDefault; _textField.backgroundColor = [UIColor grayColor]; } return _textField; } //郵箱 - (BOOL) validateEmail:(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]; } //手機號碼驗證 - (BOOL) validateMobile:(NSString *)mobile { //手機號以13, 15,18開頭,八個 \d 數字字符 NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex]; return [phoneTest evaluateWithObject:mobile]; } //車牌號驗證 + (BOOL) validateCarNo:(NSString *)carNo { NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex]; NSLog(@"carTest is %@",carTest); return [carTest evaluateWithObject:carNo]; } //車型 + (BOOL) validateCarType:(NSString *)CarType { NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex]; return [carTest evaluateWithObject:CarType]; } //用戶名 + (BOOL) validateUserName:(NSString *)name { NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$"; NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex]; BOOL B = [userNamePredicate evaluateWithObject:name]; return B; } //密碼 + (BOOL) validatePassword:(NSString *)passWord { NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$"; NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex]; return [passWordPredicate evaluateWithObject:passWord]; } //暱稱 + (BOOL) validateNickname:(NSString *)nickname { NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$"; NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex]; return [passWordPredicate evaluateWithObject:nickname]; } //身份證號 + (BOOL) validateIdentityCard: (NSString *)identityCard { BOOL flag; if (identityCard.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$"; NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [identityCardPredicate evaluateWithObject:identityCard]; } //驗證正整數 - (BOOL)validateNumber:(NSString *) textString { // NSString* number=@"^[1-9][0-9]*$"; NSString *number = @"^[0-9]*[1-9][0-9]*$"; NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number]; return [numberPre evaluateWithObject:textString]; } @end