iOS中电子邮件地址的正则表达式验证并检查空白条目[重复]

Posted

技术标签:

【中文标题】iOS中电子邮件地址的正则表达式验证并检查空白条目[重复]【英文标题】:regex validation for email address in iOS and check for blank entry [duplicate] 【发布时间】:2012-06-19 19:53:47 【问题描述】:

可能重复:Check that an email address is valid on ios

对于我的UITextField.text 值,我可以在 iOS 中使用什么正则表达式语法来验证电子邮件?有没有办法让我检查是否缺少其他 UITextFieldUITextView

我可以用它来测试空白值吗:

if(content.text == nil)
    //do something

else
    //proceed with next course of action

【问题讨论】:

见***.com/questions/3139619/… 【参考方案1】:

为了绝对确定您已经测试了一个空值,您还应该测试一个空字符串。

这种结构可以做到这一点,并且比使用isEqualToString: 更少打字,但这主要是个人喜好问题:

if ( content.text == nil || content.text.length == 0 ) 


对 Objective-C 运行时有更深入了解的人可能会指出,对 nil 进行测试是多余的,因为向 nil 发送消息总是会产生 nil(或 0),所以 content.text.length 是 nil如果content.text 是。此外,如果您的周围充满了核心 C 编码人员,他们可能会同样指出,在 if 语句中测试 0 是针对懦夫的。

因此,键入可以减少到以下内容,但代价是您的代码更加清晰:

if ( !content.text.length ) 


关于测试邮箱地址的正则表达式,有一个很好的讨论here,Cocoa中的正则表达式可以这样做:

NSPredicate *regexPred = [NSPredicate predicateWithFormat: @"self matches[cd] '<email regex here>'"];
BOOL match = [regexPred evaluateWithObject: content.text];

【讨论】:

我知道 regex fer email 但在 iOS 的 Objective-c 中使用它的语法如何?【参考方案2】:

简单设置

[textField setKeyboardType:UIKeyboardTypeEmailAddress];

您将避免尝试正确进行电子邮件验证的痛苦。

【讨论】:

外接键盘...?复制和粘贴...? 你知道我什至没有考虑到这实际上并没有对输入执行任何验证。道歉。【参考方案3】:

所以对于第一部分(电子邮件验证),这是我要做的:

if (content.text == nil //check if its nil (i dont think this is actually possible but who knows
    || content.text.length == 0 //check for the length to have some sort of magnitude
    || [content rangeOfString:@"@"].location == NSNotFound)  //check if its an email they put in
//do your error stuff

现在要检查其他文本字段/文本视图,您需要显示更多代码。很有可能,但这取决于您如何实现该类。如果您将它们作为 ivars,您可以直接对 ivars 进行检查,否则您可以导航视图层次结构以找到它们然后进行检查,您会遵循吗?

【讨论】:

以上是关于iOS中电子邮件地址的正则表达式验证并检查空白条目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 Javascript 正则表达式转换为 PHP

C# MVC 4 应用程序中的电子邮件地址验证:使用或不使用正则表达式 [重复]

史上最复杂的验证邮件地址的正则表达式

正则表达式学习(转)

使用javascript检查美国地址的正则表达式? [复制]

React 电子邮件验证中的正则表达式