Vyg*_*ggo 1 cocoa objective-c nsstring nspredicate
我正在寻找一种方法来比较两个字符串,看看第二个字符串是否包含第一个中列出的字符(字母,数字,其他),让我解释一下:
例如:想象一个只有数字的密码,允许使用"*":参考链(1):"*0123456789" NSString格式,无NSArray
工作链(2)="156/15615 = 211" NSString格式,
我怎么知道我的链2包含2个字符(/ =)哪个不在我的链1中?
为了简化允许的管理字母,我不想NSArray用来管理链,例如函数调用:
BOOL unauthorized_letter_found = check(work_chain, reference_chain);
Run Code Online (Sandbox Code Playgroud)
你必须通过"for" NSPredicate,等等?
PS:我在MAC OS上,而不是iOS,所以我无法使用NSRegularExpression.
您可以使用字符集,例如使用-rangeOfCharacterFromSet:检查是否存在禁用字符:
NSCharacterSet *notAllowed = [[NSCharacterSet
characterSetWithCharactersInString:@"*0123456789"] invertedSet];
NSRange range = [inputString rangeOfCharacterFromSet:notAllowed];
BOOL unauthorized = (range.location != NSNotFound);
Run Code Online (Sandbox Code Playgroud)
如果你想使用NSPredicate,你可以这样做:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES '[0-9*]+'"];
if ([predicate evaluateWithObject:@"0*2481347*"]) {
NSLog(@"passes!");
} else {
NSLog(@"fails!");
}
Run Code Online (Sandbox Code Playgroud)
这是使用NSPredicate内置的正则表达式匹配的东西.:)
| 归档时间: |
|
| 查看次数: |
5138 次 |
| 最近记录: |