我有以下方法來驗證我的電子郵件地址在窗體中。如何驗證「。」在電子郵件地址?
-(BOOL) validEmailAddress:(NSString*) emailString {
NSString *regExPattern = @"^[A-Z0-9._%+-][email protected][A-Z0-9.-]+.[A-Z]{2,4}$";
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger regExMatches = [regEx numberOfMatchesInString:emailString options:0 range:NSMakeRange(0, [emailString length])];
if (regExMatches == 0)
return NO; // email invalid
else
return YES; // email valid
}
這個偉大的工程,除了它打破瞭如果用戶給出「ABC @ XYZ」的電子郵件(不象.com或.org超級域)。
我很確定問題與「。」有關。在我的正則表達式中。我試圖像這樣逃脫它,
NSString *regExPattern = @"^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$";
但這也行不通。有什麼建議麼?
編輯:當最初發布問題時,我沒有在最後一個點之前進行轉義。抱歉。
你是什麼意思*分解*?您的功能是否將'abc @ xyz'視爲有效的電子郵件地址?如果是這樣,那很好,因爲'abc @ xyz' *是一個有效的電子郵件地址。 – Oswald 2013-04-05 22:51:42
您可能需要查看http://www.regular-expressions.info/email.html關於驗證具有正則表達式的電子郵件的其他提示 – david 2013-04-05 22:57:10
和http://data.iana.org/TLD/tlds -alpha-by-domain.txt查看有效頂級域名列表 – david 2013-04-05 23:06:14