验证电话号码ios

Tho*_*son 26 regex iphone ipad ios

我需要验证一个国际电话号码.

我知道很难验证国际电话号码,所以我会保持简单:

+ 或00然后6-14个数字

我使用正则表达式的当前代码由于某些我无法解决的原因而无法正常工作.它只是说它无法打开正则表达式和崩溃.

这是我目前的代码:

NSString *phoneRegex = @"^[\+(00)][0-9]{6,14}$";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];

BOOL phoneValidates = [phoneTest evaluateWithObject:phoneNumber];
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

谢谢!

whi*_*gle 36

NSString *phoneRegex = @"^((\\+)|(00))[0-9]{6,14}$";
Run Code Online (Sandbox Code Playgroud)

这种方式有点好.如果你逃避"\",你的代码也会工作.

  • 为什么这里需要括号,对于`@"^(\\ + | 00)[0-9] {6,14} $";`不是同样好的吗? (2认同)

Man*_*rig 16

复制和粘贴方法以验证电话号码:

- (BOOL)validatePhone:(NSString *)phoneNumber
{
    NSString *phoneRegex = @"^((\\+)|(00))[0-9]{6,14}$";
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];

    return [phoneTest evaluateWithObject:phoneNumber];
}
Run Code Online (Sandbox Code Playgroud)

或用于验证电话号码的开源

https://github.com/iziz/libPhoneNumber-iOS