面试题答案
一键面试实现验证邮箱格式的方法
#import <Foundation/Foundation.h>
BOOL validateEmailFormat(NSString *email) {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}
在Objective-C中使用正则表达式的主要类和方法及基本步骤
-
主要类:
NSRegularExpression
:用于表示正则表达式对象,提供了更强大和灵活的正则表达式操作。NSPredicate
:可以通过简单的语法使用正则表达式进行匹配判断。
-
主要方法:
NSRegularExpression
的方法:+regularExpressionWithPattern:options:error:
:根据给定的正则表达式模式、选项和错误信息创建一个NSRegularExpression
对象。–matchesInString:options:range:
:在给定字符串中按照指定选项和范围查找所有匹配项,返回一个NSArray
,数组元素为NSTextCheckingResult
对象。
NSPredicate
的方法:+predicateWithFormat:
:通过格式字符串创建一个谓词对象。在使用正则表达式时,格式字符串通常为@"SELF MATCHES %@"
,其中%@
为正则表达式字符串。–evaluateWithObject:
:使用谓词对给定对象进行评估,返回一个BOOL
值表示是否匹配。
-
基本步骤:
- 使用
NSPredicate
:- 定义正则表达式字符串。
- 使用
[NSPredicate predicateWithFormat:@"SELF MATCHES %@", 正则表达式字符串]
创建谓词对象。 - 使用
[谓词对象 evaluateWithObject:待匹配字符串]
进行匹配判断,返回BOOL
值。
- 使用
NSRegularExpression
:- 使用
+regularExpressionWithPattern:options:error:
创建NSRegularExpression
对象,其中options
可用于指定匹配选项,如忽略大小写等。 - 使用
–matchesInString:options:range:
在字符串中查找匹配项,得到NSArray
。 - 根据
NSArray
中NSTextCheckingResult
对象的数量等判断是否匹配,也可以获取匹配的具体位置和内容等详细信息。
- 使用
- 使用