如何检查UITextField的文本是否是有效的电子邮件? [英] How to check if UITextField's text is valid email?

查看:229
本文介绍了如何检查UITextField的文本是否是有效的电子邮件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有3个UITextFields(用户名,电子邮件和密码)的视图控制器。

I have a view controller with 3 UITextFields (username, email, and password).

我需要一个方法,首先检查,如果所有字段都有文本,然后检查电子邮件的文本字段是否是有效的电子邮件,可能是通过检查其是否具有 @ 登录。

I need a method that checks first, if all fields have text in them, then check if the email's textfield is a valid email, perhaps by checking if it has an @ sign in it. Can anyone help with this?

推荐答案

这将检查UITextField是否有正确的电子邮件。

Add此方法添加到 textFields 委托 ,然后检查要更改的字符是否应该添加。

返回 NO ,具体取决于文本字段当前文本与有效电子邮件地址的比较:

This will check a UITextField for a proper email.
Add this method to the textFields delegate then check if the characters it is about to change should be added or not.
Return YES or NO depending on the text fields current text compared to a valid email address:

#define ALPHA                   @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
#define NUMERIC                 @"1234567890"
#define ALPHA_NUMERIC           ALPHA NUMERIC

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSCharacterSet *unacceptedInput = nil;
    if ([[textField.text componentsSeparatedByString:@"@"] count] > 1) {
        unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:[ALPHA_NUMERIC stringByAppendingString:@".-"]] invertedSet];
    } else {
        unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:[ALPHA_NUMERIC stringByAppendingString:@".!#$%&'*+-/=?^_`{|}~@"]] invertedSet];
    }
    return ([[string componentsSeparatedByCharactersInSet:unacceptedInput] count] <= 1);
}  

要检查文本字段是否为空或不是使用 if(myTextField.text.length> 0){} 在视图控制器中的任何位置。

To check if a text field is empty or not just use if (myTextField.text.length > 0) {} anywhere in your view controller.

这篇关于如何检查UITextField的文本是否是有效的电子邮件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆