[解決済み】iOSでメールアドレスが有効であることを確認する【重複あり
2022-04-14 01:39:20
質問
重複の可能性があります。
iOS 2.0のObjective-Cで電子メールアドレスを検証するためのベストプラクティス?
iPhoneアプリケーションを開発中で、ログイン時にメールアドレスを入力する必要があります。
メールアドレスが有効なメールアドレスであるかどうかを確認する方法はありますか?
どのように解決するのですか?
ココア機能が良い。
-(BOOL) NSStringIsValidEmail:(NSString *)checkString
{
BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
ラックスとストリクトの違いについての議論 http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
また、カテゴリの方が良いので、インターフェイスを追加することもできます。
@interface NSString (emailValidation)
- (BOOL)isValidEmail;
@end
実装
@implementation NSString (emailValidation)
-(BOOL)isValidEmail
{
BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:self];
}
@end
そして活用する。
if([@"[email protected]" isValidEmail]) { /* True */ }
if([@"InvalidEmail@notreallyemailbecausenosuffix" isValidEmail]) { /* False */ }
関連
-
[解決済み】何が原因か。switch文からこのcaseラベルにジャンプできない [重複]。
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] 有効なメールアドレスの最大長を教えてください。
-
[解決済み] 電子メールアドレスに使用できる文字は何ですか?
-
[解決済み] メール送信インテント
-
[解決済み] 電子メールアドレスの検証を行うC#コード
-
[解決済み] Xcode 4でNSZombieEnabledを設定するにはどうすればよいですか?
-
[解決済み] iOS 2.0でのメールアドレス検証のベストプラクティスとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-Cでオブジェクトをキャストする方法
-
[解決済み] iPhoneでObjective-Cはガベージコレクタを搭載しているのか?
-
[解決済み] NSNumberをNSStringに変換する方法
-
[解決済み] インスタンスに送信されたセレクタが認識されない」を解決するには?
-
[解決済み] NSStringをNSNumberに変換する方法
-
[解決済み] 電子メールアドレスの検証を行うC#コード
-
[解決済み] メソッド名と行番号を出力し、NSLogを条件付きで無効にする方法は?
-
[解決済み】iOS7でステータスバーを隠すことができない。
-
[解決済み】ARCで@autoreleasepoolがまだ必要なのはなぜですか?
-
[解決済み] iOS 2.0でのメールアドレス検証のベストプラクティスとは?