Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何验证出生日期7_Ios_Iphone_Validation - Fatal编程技术网

Ios 如何验证出生日期7

Ios 如何验证出生日期7,ios,iphone,validation,Ios,Iphone,Validation,您好,在我的申请表中,我有一份登记表,我正在验证所有字段,如电子邮件和电话号码。但我想以DD/MM/YY等格式验证此DOB。我正在使用else if条件检查我的验证我想对DOB执行同样的操作 如果情况像这样,我会用else验证 - (IBAction)send:(id)sender { if ([self phonevalidate:[ph text]]!= 1){ UIAlertView *alert1 = [[UIAlertView alloc]initWithTi

您好,在我的申请表中,我有一份登记表,我正在验证所有字段,如电子邮件和电话号码。但我想以
DD/MM/YY
等格式验证此DOB。我正在使用else if条件检查我的验证我想对DOB执行同样的操作

如果情况像这样,我会用else验证

   - (IBAction)send:(id)sender {
   if ([self phonevalidate:[ph text]]!= 1){
       UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"Message" message:@"pls enter valid 10 digit number" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
       [alert1 show];
       [alert1 release];
   }

  else if ([self validateEmail:[emd text]]!= 1){
       UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"Message" message:@"pls enter valid email id" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
       [alert1 show];
       [alert1 release];
    }
我的手机验证功能

    -(BOOL)phonevalidate:(NSString *)phh
 {
      NSString *phoneRegex = @"[0-9]{10}";
      NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];

      return  [phoneTest evaluateWithObject:phh];
 }
我没有使用UIDate选择器,我要用UITextfield本身验证DOB的UITextfield。如上所述,我要验证DOB,请告诉我如何验证DOB并检查int else if条件

谢谢。

让我们试试下面的代码:

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"DD/MM/YY"];

NSDate *date = [dateFormatter dateFromString:@"12/12/2014"];

If (date) 
{ 
    NSLog(@"Valid date");
}

编辑:

假设b'date是

NSString *dateOfBirth = @"22/03/14"; 
这是检查日期是否有效的方法吗

-(BOOL) isValidateDOB:(NSString *) dateOfBirth
{
    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateStyle:NSDateFormatterShortStyle];
    [format setDateFormat:@"dd/MM/yy"];
    NSDate *validateDOB = [format dateFromString:dateOfBirth];
    if (validateDOB != nil) 
       return YES;
    else
       return NO;
}
在上述方法中
[format setDateStyle:NSDateFormatterShortStyle]
setDateFormat
在您的情况下非常重要:

现在你可以像这样检查它

if([self isValidateDOB:dateOfBirth])
{ 
   // b"date is valid;
}
else
{
  // b"date is not valid;
}

您可以为此使用
UIDatePicker

初始化如下:

UIDatePicker datePicker = [[UIDatePicker alloc] init];

datePicker.datePickerMode = UIDatePickerModeDate;

datePicker.date = [NSDate date];
然后,设置
文本字段的
输入视图
(将DOB作为输入的字段):

然后,为
UITextField
实现
textfield的委托方法:

- (void) textFieldDidEndEditing:(UITextField *)textField {


    if (textField == yourDOBtextField) {

        NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
        dateFormatter.dateFormat = @"dd/MM/yy";
        yourDOBtextField.text = [dateFormatter stringFromDate:datePicker.date];

        [dateFormatter release];
    }
}

就是这样。

您的日期(DOB)是字符串日期或NSDate格式?可能无法满足您的需要,但您是否考虑过使用
UIDATECIPKER
?这样,您不仅可以根据需要格式化用户选择的DOB,而且在UI方面更令人愉快。@N00B程序员请告诉我是否有可能将uidate选择器实现为UITextViewMe。请给我2分钟。你是说尤特菲尔德,对吗?不是UITextView?@n00bProgrammer UITEXTFIEI我已经尝试过你的代码,它在其他部分给出了错误,比如例外表达式,我使用了大括号,但它仍然显示错误,请告诉我如何解决这个问题。请告诉我如何检查非ivalidateDOB不等于dateofbrith“ivalidateDOB不等于dateofbrith”然后执行
else
部分。。检查我的答案是否已编辑,并与我的演示项目一起检查,这对我来说很好。我正在验证更多字段,所以使用了else if条件,如果我只验证dob,那么这个代码是f9,但是我正在验证这么多字段,我在问,请告诉我,我必须在哪里使用初始化UIdate选择器,我在任何函数内都有,或者可以在外部初始化。你应该将其设置为全局对象。在
.h
中声明,如
UIDatePicker*datePicker。然后在
viewDidLoad
中添加其余代码(从
viewDidLoad
中删除
UIDatePicker*
)。然后设置
textField
的委托,如
yourDOBtextField.delegate=self。将
.h
设置为
UITextFieldDelegate
。你完成了。:)
- (void) textFieldDidEndEditing:(UITextField *)textField {


    if (textField == yourDOBtextField) {

        NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
        dateFormatter.dateFormat = @"dd/MM/yy";
        yourDOBtextField.text = [dateFormatter stringFromDate:datePicker.date];

        [dateFormatter release];
    }
}