アプリケーションにテキストフィールドがあり、電話番号 (+00-0000000000) の検証を行っています。ユーザーは最初に「+」を入力し、次に 2 桁以上の国コードを入力し、国コードの後に「-」を入力し、「」の後に入力する必要があります。 -' 携帯電話番号が入力されますが、数字はありません。
正規表現を使用してコードを作成しましたが、最初にテキストフィールドに「+」の代わりに任意のアルファベットを入力すると、アプリがクラッシュし、+00- ie +countrycode- を入力すると、任意のアルファベットが「abc」と表示され、どちらが受け入れられますか?違う。テキストフィールドには数字と + と - のみを入力する必要があります。数字と + と - 以外が入力された場合、たとえばテキスト フィールドにアルファベットが入力された場合、「有効な携帯電話番号を入力してください」という警告ビューが表示されます。
これは私のコードです:
- (BOOL)validateInputWithString:(NSString *)aString
{
NSString * const regularExpression = @"^([+]{1})([0-9]{2,6})([-]{1})([0-9]{10})$";
NSError *error = NULL;
}
-(IBAction)Check:(id)sender{
BOOL check = [self validateInputWithString:TextField.text];
if(check == YES){
NSLog(@"Hii");
NSString *string= [NSString stringWithFormat:@"%@", TextField.text];
NSArray *first = [string componentsSeparatedByString:@"-"];
NSString *second = [first objectAtIndex:1];
NSString *third = [first objectAtIndex:0];
if([second length] < 11){
NSLog(@"bang");
}
else{
NSLog(@"Fault");
}
if([third length] > 3 || [third length] < 7){
NSLog(@"Bang");
}
else{
NSLog(@"fault");
}
}
else{
NSLog(@"FAULT");
}
}
しかし、ここで私のコードで +countrycode- の後にアルファベットを入力すると、どちらが間違っているかが受け入れられ、テキストファイルに最初にアルファベットを入力すると、ボタンのクリックでアプリがクラッシュします。