在文本字段上设置验证

时间:2013-01-16 07:05:22

标签: iphone xcode uitextfield

我正在做一个注册表单,如果任何文本字段留空,那么我想验证它。但是我不想在textfield为空时显示常规UIAlertView。 我可以在特定的textField旁边显示任何标记的红色星形或其他任何东西吗?

如何验证以检查emailId模式?

6 个答案:

答案 0 :(得分:2)

您可以在textField

中设置红色文字
if ([yourTextField.text isEqualToString:@""])
    {
        yourTextField.textColor=[UIColor redColor];
        yourTextField.text=@"Value Required";
    } 

在.h文件中设置textField的委托

<UITextFieldDelegate>

并在textFieldDidBeginEditing中,您可以更改textField颜色

如果您在textField中设置*,请执行此操作

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if ([textField.text isEqualToString:@"*"])
    {
        textField.text=@"";
        textField.textColor=[UIColor blackColor];
    }
}

或者您可以在textField旁边制作一个标签,然后将其隐藏起来,并在需要时显示。

验证电子邮件

- (BOOL)isValidEmailId:(NSString*)email
{

    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 

    return [emailTest evaluateWithObject:email];
}

答案 1 :(得分:1)

验证电子邮件字段:

- (BOOL)EmailValidationL:(NSString *)email
{
    NSString *emailRegEx =@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
    @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
    @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
    @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
    @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
    @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
    @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";

    NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
    a= [regExPredicate evaluateWithObject:email];
    return a;
}

为了检查它,如下所示:

if (![self EmailValidationL:emailtxt.text])
    {

        mailAlert  =[[UIAlertView alloc]initWithTitle:@"Error"
                                              message:@"Email Field Is Not Valid"
                                             delegate:nil
                                    cancelButtonTitle:nil
                                    otherButtonTitles:@"OK",nil];
        [mailAlert show];
        [mailAlert release];
    }

答案 2 :(得分:0)

是的,您可以在上面显示带有*文字的红色图像或标签,您可以隐藏并显示它。

要验证电子邮件,您可以使用以下代码

 +(BOOL) validateEmail: (NSString *) email 
 {
      NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]";
      NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
      BOOL isValid = [emailTest evaluateWithObject:email];
      return isValid;
 }

答案 3 :(得分:0)

好的,你可以获得很多电子邮件解决方案。

所以我们去看看明星。你可能有很多方法让我给他们两个

  1. 将隐藏的UIImageView添加到要显示的位置,并在使用时将其显示为空

  2. 使用[UIView addSubView:UIImageView]显示您想要显示的开始。

  3. 如果你想用红色显示正常*,可以使用UILabel而不是UIImageView。

    我使用以下来验证电子邮件:

    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    
    if(![emailTest evaluateWithObject:txtMail.text])
    {
      //Your code if wrong email
    }
    

    一切顺利......

答案 4 :(得分:0)

你可以试试这个:

首先,在XIB中使用简单的文本&amp;颜色:

-(void)DidLoad
{
   -----
   lbl.hidden = YES;
   -----
}

Attributes:
text = "* email invalid"
color = "red"

Or whatever you like.

&#39; textDidEndEditing&#39;方法

- (void)textFieldDidEndEditing:(UITextField *)textField
{
   if(textField == txtEmail)
   {
      if(![txtEmail.text isEqualToString:@""])
      {
         bool chk = [self validateEmail:txtEmail.text];
         if(!chk)
         {
            lbl.hidden = NO;
            lbl.text = @"email invalid";
         }
         else
            lbl.hidden = YES;
      }
      else
      {
         lbl.hidden = NO;
         lbl.text = @"* required";
      }
   }
}

电子邮件验证

+(BOOL) validateEmail: (NSString *) email 
{
  NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
  NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
  BOOL isValid = [emailTest evaluateWithObject:email];
  return isValid;
}

答案 5 :(得分:-1)

首先,Shashank Kulshrestha给出了验证电子邮件的好答案。现在,如果你想显示一些东西,用于指示无效或空输入,请执行该文本字段。它会显示红色边缘。 1.添加QuartzCore框架。 2.Import #import 3.添加以下代码:

if (textfield==empty || invalid)
{
    textField.layer.cornerRadius=8.0f;
    textField.layer.masksToBounds=YES;
    textField.layer.borderColor=[[UIColor redColor]CGColor];
    textField.layer.borderWidth= 1.0f;

}