jyo*_*thi 8 string cocoa cocoa-touch objective-c nsstring
我需要检查一个字符串是否包含一个大写字母,一个小写字母,一个整数和一个特殊字符.我该如何检查?
Mau*_*lik 14
没有任何额外的框架:
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet];
if ([aString rangeOfCharacterFromSet:set].location != NSNotFound) {
NSLog(@"This string contains illegal characters.");
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用正则表达式(此语法来自RegexKitLite:http://regexkit.sourceforge.net ):
if ([aString isMatchedByRegex:@"[^a-zA-Z0-9]"]) {
NSLog(@"This string contains illegal characters.");
}
Run Code Online (Sandbox Code Playgroud)
发现稍微好一点的实现.对Ameesh答案的改进
- (BOOL)isValidString:(NSString *)string
{
return [string rangeOfCharacterFromSet:[NSCharacterSet uppercaseLetterCharacterSet]].location != NSNotFound &&
[string rangeOfCharacterFromSet:[NSCharacterSet lowercaseLetterCharacterSet]].location != NSNotFound &&
[string rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location != NSNotFound;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |