0
3つのUITextFieldを検証しようとしていますが、いずれのテキストフィールドも11文字以上を受け付けていません。 12番目の文字を入力すると、テキストフィールドが赤色に変わり、入力する次のフィールドに移動することはできません。UITextField検証エラー
このリンクの少しの助けを借りて私はTextField Validation With Regular Expressionと検証しましたが、今では私のテキストフィールドが11文字以上を受け入れていないのはなぜ分かりませんか?
- (BOOL)validateInputWithString:(NSString *)aString
{
NSString* regularExpression = @"";
if (aString == self.ipAddress.text) {
regularExpression = @"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
} else if (aString == self.username.text) {
regularExpression = @"^[A-Za-z][A-Za-z0-9]*$";
} else if (aString == self.password.text) {
regularExpression = @"^[^\\s\\r\\n][0-9a-zA-Zk\\r\\[email protected]!#\\$\\^%&*()+=\\-\\[\\]\\\\\\';,\\.\\/\\{\\<>\\?\\s]*$";
}
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern: regularExpression
options:NSRegularExpressionCaseInsensitive
error:&error];
if (error) {
NSLog(@"error %@", error);
}
NSUInteger numberOfMatches = [regex numberOfMatchesInString:aString
options:0
range:NSMakeRange(0, [aString length])];
if([self.ipAddress.text length]>0 && [self.username.text length]>0 && [self.password.text length]>0)
{
enableLogin = YES;
}
return numberOfMatches > 0;
}
- (void)validateInputCallback:(NSNotification *) notification
{
UITextField* atextField = (UITextField *)[notification object];
if ([self validateInputWithString:atextField.text]){
//Turns the textfield green
atextField.layer.cornerRadius=8.0f;
atextField.layer.masksToBounds=YES;
atextField.layer.borderColor=[[UIColor greenColor]CGColor];
atextField.layer.borderWidth= 1.0f;
} else {
//Turns the textfield red
atextField.layer.cornerRadius=8.0f;
atextField.layer.masksToBounds=YES;
atextField.layer.borderColor=[[UIColor redColor]CGColor];
atextField.layer.borderWidth= 1.0f;
}
}