NSString
ユーザーが値を入力したものがありUITextField
ます。ここでは、文字列に次のような値のみが含まれているかどうかを検証する必要があります
'a to z' , 'A to z' , '1 to 9'.
これら以外の文字は必要ありません...助けてください...NSNumberFormatter
数値と文字列を使用してNSScanner
いますが、両方を同時に検証する方法.
NSString
ユーザーが値を入力したものがありUITextField
ます。ここでは、文字列に次のような値のみが含まれているかどうかを検証する必要があります
'a to z' , 'A to z' , '1 to 9'.
これら以外の文字は必要ありません...助けてください...NSNumberFormatter
数値と文字列を使用してNSScanner
いますが、両方を同時に検証する方法.
デリゲートUITextField
を作成し、これをコードの下に貼り付けます:-
// -init、-initWithNibName:bundle: などで
NSCharacterSet *blockedCharacters = [[[NSCharacterSet alphanumericCharacterSet] invertedSet] retain];
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
return ([characters rangeOfCharacterFromSet:blockedCharacters].location == NSNotFound);
}
// -dealloc で
[blockedCharacters release];
それがあなたを助けることを願っています
NSRegularExpression
次のように使用できます。
NSString *string1 = @"abc123";
NSString *string2 = @"!abc123";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^a-z0-9]" options:NSRegularExpressionCaseInsensitive error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string1 options:0 range:NSMakeRange(0, [string1 length])];
NSLog(@"string 1 matches: %ld", numberOfMatches);
numberOfMatches = [regex numberOfMatchesInString:string2 options:0 range:NSMakeRange(0, [string1 length])];
NSLog(@"string 2 matches: %ld", numberOfMatches);
@"[^a-z0-9]"
確認したい文字に合わせてパターンを変更します。は^
「このセットにない」ことを意味するため、一致が見つかった場合、フィールドは検証に失敗するはずです。