문자열에 어포 스트로피가 포함되지 않도록 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;
}
반환이 오류를 나타냅니다이다. 이 코드는 문자열이 아포스트로피 인 경우를 제외하고는 작동합니다.
이 문제를 해결하기 위해 앞의 블록 위에 다음 코드를 추가했습니다.
if([string isEqualToString:@"'"]);
{
return 2;
}
이 코드는 입력에 관계없이 true로 평가됩니다. 나는 첫 번째 블록이 ''의 입력과 충돌하는 것을 방지하거나 두 번째 블록이 작동하도록해야합니다.
무엇이 누락 되었습니까?
@Chris : 확인해야 할 문자 세트가있는 경우 Chuck의 답변도 작성할 수 있습니다. 그래서, 모든 불법 문자로 NSCharacterSet을 구축한다면 if (([string rangeOfCharacterFromSet : invalidSet]). location! = NSNotFound) // do something –