5

私の電話番号の形式は (987) 786-5645 です。

- (BOOL)validatePhoneNumberWithString:(NSString*)phone
{
    NSString *pNRegex = @"[(0-9)]{3}+\\ +\\[0-9-]{3}+\\[0-9]{4}";
    NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
    return [PNTest evaluateWithObject:phone];
}

上記のコードを使用しています。

これの正確な正規表現ルールは何ですか? 数字と括弧も理解できます。

括弧を閉じた後にその空白を検出するには何を使用すればよいですか?

4

4 に答える 4

1

これを確認してください。あなたのフォーマットでうまく動作します。

space,(,) のような特別な文字を与えたい場合は、その文字を // で追加します

    NSString *phone=@"(123)123-1234";
    NSString *pNRegex = @"\\([0-9]{3}\\)[0-9]{3}\\-[0-9]{4}";
    NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
    BOOL check=[PNTest evaluateWithObject:phone ];
    NSLog(@"%i",check);

O/P:-

(123)123-1234  - check=1

(123123-1234   - check=0

(123) 123-1234 - check=0

エンドブラケットの後にスペースを入れたい場合は、これを使用してください。

NSString *phone=@"(123) 123-1234";
    NSString *pNRegex = @"\\([0-9]{3}\\)\\ [0-9]{3}\\-[0-9]{4}";
    NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
    BOOL check=[PNTest evaluateWithObject:phone ];
    NSLog(@"%i",check);

O/P:-

(123) 123-1234  - check=1

(123123-1234   - check=0

(123)123-1234 - check=0
于 2013-05-02T13:36:56.433 に答える