前缀为 09 的 11 位数字 phone 的正则表达式

Reqular expression for 11 digit phone number with 09 prefix

我正在尝试编写一个正则表达式来处理 phone 数字,该数字以“0”开头,后跟“9”和 9 位数字,可以是 0-9 内的任何数字。

-(BOOL) validateAlphabets: (NSString *)text{      
     NSString *Regex = @"what should be here?!";
     NSPredicate *TestResult = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", Regex];
     return [TestResult evaluateWithObject:text];
}

然后我通过以下方式检查输入验证:

if (![self validateAlphabets:self.phoneNumber.text]){
      NSLog(@"Invalid");
   }
else{
      NSLog(@"Valid!");
 }

您可以尝试使用这个正则表达式:

09[0-9]{9}

REGEX DEMO

您可以像这样尝试在您的函数中测试它:

-(BOOL) validateAlphabets: (NSString *)text{      
     NSString *Regex = @"what should be here?!";
     NSPredicate *TestResult = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", Regex];
     if(TestResult evaluateWithObject: text)
     return true;
     else
     return false;
}

我会选择

(0|۰)(9|۹)(\d|[dummy]){9} //<-- \d being any digit

dummy替换为您要支持的字母数字

使用NSString方法:

- (BOOL)validateAlphabets: (NSString *)text {
    NSString *regEx = @"09\d{9}";
    NSRange range = [text rangeOfString:regEx options:NSRegularExpressionSearch];
    return range.location != NSNotFound;
}