1

重複の可能性:
メールアドレスがiOSで有効であることを確認してください

私のUITextField.text価値のためにiOSでの電子メール検証に使用できる正規表現構文は何ですか?そして、他のUITextFieldものやUITextView不足していないかどうかを確認する方法はありますか?

これを使用して空白の値をテストできますか?

if(content.text == nil){
    //do something
}
else{
    //proceed with next course of action
}
4

3 に答える 3

2

空の値をテストしたことを確実に確認するには、空の文字列もテストする必要があります。

この構成体はそれを行い、 を使用するよりもタイピングが少なくなりますisEqualToString:が、それは主に個人的な好みの問題です:

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

}

nilObjective-C ランタイムのより詳しい知識を持つ人々は、メッセージを送信するnilと常に nil (または 0) になるため、テストcontent.text.lengthは冗長であると指摘するかもしれませんcontent.text。また、あなたの周りに筋金入りの C コーダーが住んでいる場合、if ステートメントで 0 をテストすることは弱虫のためであると同様に指摘される可能性があります。

したがって、コードの明確さを犠牲にして、入力を次のように減らすことができます。

if ( !content.text.length ) {

}

メールアドレスをテストするための正規表現に関しては、ここで良い議論があり、Cocoa での正規表現は次のように行うことができます:

NSPredicate *regexPred = [NSPredicate predicateWithFormat: @"self matches[cd] '<email regex here>'"];
BOOL match = [regexPred evaluateWithObject: content.text];
于 2012-06-17T16:31:49.093 に答える
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
}

他のテキストフィールド/テキストビューをチェックするには、さらにコードを表示する必要があります。それは非常に可能ですが、クラスをどのように実装したかによって異なります。それらを ivar として持っている場合は、ivar を直接チェックできます。それ以外の場合は、ビュー階層をナビゲートしてそれらを見つけてからチェックを行うことができますか?

于 2012-06-17T16:38:37.143 に答える
-4

簡単に設定

[textField setKeyboardType:UIKeyboardTypeEmailAddress];

電子メールの検証を正しく行おうとする苦労を避けることができます。

于 2012-06-17T16:40:19.953 に答える