NSPredicate检查某些字符串

时间:2013-11-21 08:17:22

标签: ios iphone nsstring nspredicate predicatewithformat

我正在处理由其他人实施的代码,如下所示

+(BOOL)emailValidate:(NSString *)email  {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
return [emailTest evaluateWithObject:email];
}

+(BOOL) IDValidate:(NSString *)ID {
NSString *regexString = @"[ A-Z0-9a-z_+-]{1,20}"; 
NSPredicate *regex = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexString]; 
return [regex evaluateWithObject:ID];
}

我希望在ID和电子邮件中使用空格“”和逗号“,”我搜索了很多如何改变谓词格式,但找不到答案。

1 个答案:

答案 0 :(得分:0)

首先,电子邮件中不允许Coma (,)。但是对于您的场景,请使用以下正则表达式:

For "xyx,+ xyz125"
  ^[a-zA-Z0-9][a-zA-Z0-9,+_- ]+$
For email
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$

希望能解决你的问题。