我正在做一个注册表单,如果任何文本字段留空,那么我想验证它。但是我不想在textfield为空时显示常规UIAlertView。 我可以在特定的textField旁边显示任何标记的红色星形或其他任何东西吗?
如何验证以检查emailId模式?
答案 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)
好的,你可以获得很多电子邮件解决方案。
所以我们去看看明星。你可能有很多方法让我给他们两个
将隐藏的UIImageView添加到要显示的位置,并在使用时将其显示为空
使用[UIView addSubView:UIImageView]显示您想要显示的开始。
如果你想用红色显示正常*,可以使用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;
}