NSPredicate用于手机号码验证

Har*_*t K 3 xcode nspredicate ios

如何通过NSPredicate验证电话号码(NSString*)?

规则:

最少10位数

最多10位数

第一个数字必须是7,8或9谢谢

Mon*_*olo 6

一种NSPredicate基于正则表达式将满足您的要求.

NSString *stringToBeTested = @"8123456789";

NSString *mobileNumberPattern = @"[789][0-9]{9}";
NSPredicate *mobileNumberPred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mobileNumberPattern];

BOOL matched = [mobileNumberPred evaluateWithObject:stringToBeTested];
Run Code Online (Sandbox Code Playgroud)

您不需要将模式本身保留在字符串中,但正则表达式已足够复杂,因此如果将其保留在NSPredicate格式字符串之外,则会使整个代码更清晰.