我正在驗證NSString以確保該字符串不包含撇號。驗證NSString
我使用的是做到這一點的代碼是
NSCharacterSet * invalidNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"'"];
NSScanner * scanner = [NSScanner scannerWithString:string];
NSString * scannerResult;
[scanner setCharactersToBeSkipped:nil];
[scanner scanUpToCharactersFromSet:invalidNumberSet intoString:&scannerResult];
if(![string isEqualToString:scannerResult])
{
return 2;
}
返回2表示錯誤。除了字符串是撇號的情況外,此代碼有效。
爲了解決這個問題,我在前面的代碼塊上面添加了以下代碼。
if([string isEqualToString:@"'"]);
{
return 2;
}
無論輸入如何,此代碼都計算爲true。我需要防止第一個塊因輸入而崩潰,或者讓第二個塊工作。
我錯過了什麼?
@Chris:如果你有一套你需要檢查的角色,你也可以建立在Chuck的答案上。所以,如果你建立一個包含所有非法字符的NSCharacterSet,你可以像if(([string rangeOfCharacterFromSet:invalidSet])。location!= NSNotFound)//做某事 – 2010-04-06 20:31:36