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 中使用什么正则表达式语法来验证电子邮件?有没有办法让我检查是否缺少其他 UITextField
或 UITextView
?
我可以用它来测试空白值吗:
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中电子邮件地址的正则表达式验证并检查空白条目[重复]的主要内容,如果未能解决你的问题,请参考以下文章
C# MVC 4 应用程序中的电子邮件地址验证:使用或不使用正则表达式 [重复]