电话没有使用正则表达式进行验证-Ph. Format (974) 041-0475 [重复]

Posted

技术标签:

【中文标题】电话没有使用正则表达式进行验证-Ph. Format (974) 041-0475 [重复]【英文标题】:Phone No validation with regular expression - Ph. Format (974) 041-0475 [duplicate] 【发布时间】:2013-05-29 07:46:36 【问题描述】:

我必须验证以下格式的电话号码

(974) 041-0475

我尝试过使用正则表达式@"^+(?:[0-9] ?)6,14[0-9]$",但它不适用于上述示例。它适用于普通数字。

【问题讨论】:

【参考方案1】:
You can use any of the regex according to your requirement
\(\d+\)\s*?\d+\-\d+
      OR
\(\d3\)\s*?\d3\-\d4   

【讨论】:

【参考方案2】:
US Phone Number Validation
NSString *unformatted = textField.text;//pass textfield object with text property
    NSArray *stringComponents = [NSArray arrayWithObjects:[unformatted substringWithRange:NSMakeRange(0, 3)],
                                 [unformatted substringWithRange:NSMakeRange(3, 3)],
                                 [unformatted substringWithRange:NSMakeRange(6, [unformatted length]-6)], nil];

    NSString *formattedString = [NSString stringWithFormat:@"(%@)%@-%@",
    [stringComponents objectAtIndex:0], [stringComponents objectAtIndex:1],
    [stringComponents objectAtIndex:2]];NSLog(@"Formatted Phone Number: %@", formattedString);

- (BOOL) validatePhoneWithString:(NSString *)phone

    NSString *str = @"(([+]1|[0]2)0,1+[1]1)0,1+[ ]0,1+(?:[-( ]0,1[0-9]3[-) ]0,1)0,1+[ ]0,1+[0-9]2,3+[0-9- ]4,8";
    NSPredicate *no = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",str];
    return [no evaluateWithObject:phone];

【讨论】:

这似乎是从***.com/a/7527645 和***.com/a/7954218 复制粘贴的,请在逐字使用时注明来源。

以上是关于电话没有使用正则表达式进行验证-Ph. Format (974) 041-0475 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

需要一个js正则 手机与电话都可以验证的

js正则表达式电话号码验证

求一个正则表达式,既验证固定电话也验证手机号码!

js电话号码验证的正则表达式?

C# - 使用正则表达式验证电话号码

使用正则表达式验证瑞典电话号码