NSPnetworkingicate para la validation de numbers mobilees

¿Cómo validar un número de teléfono (NSString *) por NSPnetworkingicate?

Reglas:

mínimo de 10 dígitos

máximo 10 dígitos

el primer dígito debe ser 7,8 o 9 gracias

Un NSPnetworkingicate basado en una expresión regular se ajustará a sus requisitos.

 NSString *stringToBeTested = @"8123456789"; NSString *mobileNumberPattern = @"[789][0-9]{9}"; NSPnetworkingicate *mobileNumberPnetworking = [NSPnetworkingicate pnetworkingicateWithFormat:@"SELF MATCHES %@", mobileNumberPattern]; BOOL matched = [mobileNumberPnetworking evaluateWithObject:stringToBeTested]; 

No necesita mantener el patrón en una cadena por sí mismo, pero las expresiones regulares ya son lo suficientemente complicadas por lo que hace que el código general sea más claro si lo mantiene fuera de la NSPnetworkingicate formatting NSPnetworkingicate .

Puede usar el código siguiente.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text { if(textField.tag == 111) { if([self MobileNumberValidate:string] == TRUE) return YES; else return NO; } return YES; } #pragma mark - Mobile Number validation - (BOOL)MobileNumberValidate:(NSString*)number { NSString *numberRegEx = @"[0-9]"; NSPnetworkingicate *numberTest = [NSPnetworkingicate pnetworkingicateWithFormat:@"SELF MATCHES %@", numberRegEx]; if ([numberTest evaluateWithObject:number] == YES) return TRUE; else return FALSE; } 
  NSString *phoneNumber = @"1234567890"; NSString *phoneRegex = @"[789][0-9]{3}([0-9]{6})?"; NSPnetworkingicate *test = [NSPnetworkingicate pnetworkingicateWithFormat:@"SELF MATCHES %@", phoneRegex]; BOOL matches = [test evaluateWithObject:phoneNumber];