我在网上找到了,通过委托实现。但是测试不成功。
网上代码如下:
{
NSCharacterSet *cs;
if(textField == phone)
{
NSLog(@"phone 数字");
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
if(!basicTest)
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"请输入数字"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
//[alert release];
return NO;
}
}
//其他的类型不需要检测,直接写入
return YES;
}
当我测试不成功,然后我改成了:
{
NSCharacterSet *cs;
if(textField == phone)
{
NSLog(@"phone 数字");
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
if(!basicTest)
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"请输入数字"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
//[alert release];
//return NO;
}
}
//其他的类型不需要检测,直接写入
//return YES;
}
大神帮忙,就一个简单的文本框内容判断。有好的方法求知.求大神分享点判断技术给小弟我咯
既然一定要输入数字,那你把keyboard设置成number类型的不就好了,那样都不要判断…想事先判读
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *pattern = @"^\\d*$";
NSString *text = [NSString stringWithFormat:@"%@%@",textField.text,string];
NSError *error = nil;
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matchs = [expression matchesInString:text options:NSMatchingReportProgress range:NSMakeRange(0, text.length)];
if ([matchs count]>0) {
NSTextCheckingResult *result = [matchs objectAtIndex:0];
NSRange matchRange = [result range];
if (NSEqualRanges(matchRange, NSMakeRange(0, text.length))) {
return YES;
}
}
return NO;
}
用正则表达式
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。