Iphone NSPredicate在NSString中搜索数字
我必须使用NSPredicate在NSString中查找数字。我正在使用以下代码Iphone NSPredicate在NSString中搜索数字,iphone,nspredicate,Iphone,Nspredicate,我必须使用NSPredicate在NSString中查找数字。我正在使用以下代码 NSString *test = @"[0-9]"; NSString *testString = @"ab9"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%@ CONTAINS[c] %@)", test,testString]; BOOL bResult = [predicate evaluateWithObject:testSt
NSString *test = @"[0-9]";
NSString *testString = @"ab9";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%@ CONTAINS[c] %@)", test,testString];
BOOL bResult = [predicate evaluateWithObject:testString];
此代码仅在开始时搜索号码。我也尝试过使用“[0-9]+”和“[0-9]*”这些表达式,但没有得到正确的结果 当你说
[predicate testString]
实际上,您正在向谓词对象发送“testString”消息(即:调用“testString”方法)。没有这样的事
我认为您应该发送的是“evaluateWithObject”消息,即:
BOOL bResult = [predicate evaluateWithObject:testString];
evaluateWithObject方法参考说明:
返回一个布尔值,该值指示给定对象是否匹配
接收方指定的条件
用这个
NSCharacterSet *set= [NSCharacterSet alphanumericCharacterSet];
if ([string rangeOfCharacterFromSet:[set invertedSet]].location == NSNotFound) {
// contains A-Z,a-z, 0-9
} else {
// invalid
}
查看它是否有效使用NSCharacterSet分析NSString
NSCharacterSet *set= [NSCharacterSet alphanumericCharacterSet];
NSString testString = @"This@9";
BOOL bResult = [testString rangeOfCharacterFromSet:[set invertedSet]].location != NSNotFound;
if(bResult)
NSLog(@"symbol found");
set = [NSCharacterSet uppercaseLetterCharacterSet];
bResult = [password rangeOfCharacterFromSet:set].location != NSNotFound;
if(bResult)
NSLog(@"upper case latter found");
set = [NSCharacterSet lowercaseLetterCharacterSet];
bResult = [password rangeOfCharacterFromSet:set].location != NSNotFound;
if(bResult)
NSLog(@"lower case latter found");
set = [NSCharacterSet decimalDigitCharacterSet];
bResult = [password rangeOfCharacterFromSet:set].location != NSNotFound;
if(bResult)
NSLog(@"digit found");
嗨,gerrytan,谢谢你的回复,在发布问题时输入错误,我使用的是BOOL-bResult=[predicate-evaluateWithObject:testString];在我的代码中,但我仍然没有得到结果。你只需要检查数字是否存在?谢谢amar的回复,我想搜索大写字母、小写字母和字符串中的数字。所以我选择正则表达式。此代码将只搜索数字。感谢amar的回复,看起来的NSCharacterSet是非常有用的类。