我可以使用什么样的正则表达式语法在iOS中为我的UITextField.text
值进行电子邮件验证?我有办法检查其他UITextField
或UITextView
是否遗失了吗?
我可以用它来测试空白值:
if(content.text == nil){
//do something
}
else{
//proceed with next course of action
}
答案 0 :(得分:2)
为了确保您已经测试了空白值,您还应该测试一个空字符串。
这种结构可以做到这一点,并且比使用isEqualToString:
导致更少的输入,但这主要是个人偏好的问题:
if ( content.text == nil || content.text.length == 0 ) {
}
对Objective-C运行时有更深入了解的人可能会指出对nil
的测试是多余的,因为向nil
发送消息总是会产生nil(或0),所以{如果content.text.length
为{1}},则为{1}}。此外,如果您的周围环境中装有硬核C编码器,他们可以类似地指出在if语句中测试0是针对懦夫的。
因此,输入可以减少到以下内容,代价是代码清晰:
content.text
至于测试电子邮件地址的正则表达式,有一个很好的讨论here,Cocoa中的正则表达式可以像这样完成:
if ( !content.text.length ) {
}
答案 1 :(得分:2)
因此,对于第一部分(电子邮件验证),我会这样做:
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,否则你可以导航视图层次结构找到它们然后做检查,你跟着吗?
答案 2 :(得分:-4)
只需设置
即可[textField setKeyboardType:UIKeyboardTypeEmailAddress];
您将避免尝试正确进行电子邮件验证的痛苦。