ios正在验证某些字符的文本字段输入
我对ios开发非常陌生。在验证文本字段时,我必须确保它只包含0-9和特殊字符,如*和#。请帮帮我ios正在验证某些字符的文本字段输入,ios,validation,uitextfield,Ios,Validation,Uitextfield,我对ios开发非常陌生。在验证文本字段时,我必须确保它只包含0-9和特殊字符,如*和#。请帮帮我 - (BOOL)validate:(NSString *)string{ NSString *exp = @"^([0-9]+)?(\\.([0-9]{1,2})?)?$"; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:exp options:NSRegularExpre
- (BOOL)validate:(NSString *)string{
NSString *exp = @"^([0-9]+)?(\\.([0-9]{1,2})?)?$";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:exp options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string options:0 range:NSMakeRange(0, [string length])];
if (numberOfMatches == 0)
return NO;
return YES;
}
试试这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789*#"] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
你可以试试这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *numberAndSpecialCharsSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789*#"];
return ([string rangeOfCharacterFromSet:numberAndSpecialCharsSet].location==NSNotFound);
}您试过任何东西、任何代码吗?您可以设置键盘类型,使其仅包含数字和特殊字符。看这里:但在ipad中,用户可以选择更改键盘。它在数字键盘中有一个ABC选项。这可能有助于@user2932169在正文中添加代码而不是注释。它应该更具可读性。