如何通過iOS正則表達式判斷純數字及匹配11位手機號碼?

ADVERTISEMENT

如何通過iOS正則表達式判斷純數字及匹配11位手機號碼?

第一種使用正則表達式判斷


 //是否是純數字 
 + (BOOL)isNumText:(NSString *)str{ 
 NSString * regex = @"(/^[0-9]*$/)"; 
 NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
 BOOL isMatch = [pred evaluateWithObject:str]; 
 if (isMatch) { 
 return YES; 
 }else{ 
 return NO; 
 } 
 }
ADVERTISEMENT

具體正則對不對 還需要大家來看以下

第二種 系統源生的

我推薦第二種


 - (NSString *) trimming { 
 return [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
 } 
 //判斷是不是純數字 
 [NSCharacterSet decimalDigitCharacterSet]; 
 if ([[textField.text stringByTrimmingCharactersInSet: [NSCharacterSet decimalDigitCharacterSet]]trimming].length >0) { 
 DLog(@"不是純數字"); 
 }else{ 
 DLog(@"純數字!"); 
 } 

最近在做一個即時通訊的項目, 首先是注冊登錄界面, 項目需求是通過用戶輸入的手機號碼獲取一個4位數的驗證碼來完成注冊,那麼, 問題來了?

如何判斷用戶輸入的手機號碼是合法的正確的11位手機號碼呢?(這些簡單的問題就在前端判斷好了再post給後台 ,沒必要把各種沒用的數據都post給後台)

判斷手機號碼是否正確的方法很多,我是用正則表達式來完成匹配的,廢話不多說,直接上代碼:


 //正則表達式匹配11位手機號碼 
 NSString *regex = @"^((13[0-9])|(15[^4,\D])|(18[0,0-9]))\d$"; 
 NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
 BOOL isMatch = [pred evaluateWithObject:_telField.text]; 
 if(isMatch) { //有效手機號 
 }else//無效手機號 
 { 
 if (ios7) { 
 UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"無效的手機號碼,請重新輸入..." delegate:self cancelButtonTitle:nil otherButtonTitles:@"確定", nil nil]; 
 alertView.tag = 104; 
 [alertView show]; 
 }else 
 { 
 UIAlertController*alertController = [UIAlertController alertControllerWithTitle:nil message:@"無效的手機號碼,請重新輸入..." preferredStyle:UIAlertControllerStyleAlert]; 
 UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:^(UIAlertAction*action) { 
 [_telField selectAll:self]; 
 }]; 
 [alertController addAction:otherAction]; 
 [self presentViewController:alertController animated:YES completion:nil]; 
 } 
 } 
 } 

聯通,移動和電信每年都會添加新的號碼,所以匹配電話號碼的正則表達式也要年年更新.

^((13[0-9])|(15[^4,\D])|(18[0,0-9]))\d$這個正則表達式我測試過了還沒發現有匹配不了的號碼,在這里分享給大家用!

ADVERTISEMENT

本文地址:
ADVERTISEMENT
ADVERTISEMENT