工作经验12/21-uitextfield

我的工作小技巧总结

//这个可以自定义自己输入的集合,我用的比较多

//I want to check an NSString for special characters, i.e. anything expect a-z, A-Z and 0-9.

NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:

@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789"] invertedSet];

if ([aString rangeOfCharacterFromSet:set].location != NSNotFound) {

NSLog(@"This string contains illegal characters");

}

//还有更简单的方法,使用正则判断格式是否正确

if ([aString isMatchedByRegex:@"[^a-zA-Z0-9]"]) {

NSLog(@"This string contains illegal characters");

}

//下面的是用来判断是否输入的是数字

if([packageNumberField.text rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location != NSNotFound)

{}

//下面是对特殊符号的输入进行判断

NSString *string = ;

NSString *specialCharacterString = @"!~`@#$%^&*-+();:={}[],.<>?\\/\"\'";

NSCharacterSet *specialCharacterSet = [NSCharacterSetcharacterSetWithCharactersInString:specialCharacterString];

if ([string.lowercaseString rangeOfCharacterFromSet:specialCharacterSet].length) {

NSLog(@"contains special characters");

}

//还有一种情况是需要删除特殊符号的情况

#define ACCEPTABLE_CHARACTERS @"!~`@#$%^&*-+();:=_{}[],.<>?\\/|\"\'0123456789"

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSCharacterSet *cs = [NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARACTERS];

NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

return (![string isEqualToString:filtered]) ? NO : YES;

}

//This code allows only numbers in UITextField input

//这个代理方法可以用来禁止你输入你不想要的字符

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

if ([string rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location != NSNotFound)

return NO;

else

return YES;

}

你可能感兴趣的:(工作经验12/21-uitextfield)