目錄:
1、校驗(yàn)字符串是否為空
2、判斷字符串是否符合郵政編碼格式
3、判斷字符串是否全是整數(shù)
4、判斷字符串是否全部是字符
5、判斷用戶名是否符合要求
6、判斷密碼是否符合要求
7、判斷電話號(hào)碼是否合法
8、判定string第一位是否從A-Z
9、驗(yàn)證數(shù)字及位數(shù)
10、驗(yàn)證字母及位數(shù)
11、驗(yàn)證數(shù)字或字母
12、驗(yàn)證郵箱格式是否正確
1、是否為空,返回 YES|NO
+(BOOL)isEmptyString:(NSString*)string
{
if (string == nil)
{
// 如果字符串為空,返回YES
return YES;
}
//去空格之后判斷l(xiāng)ength是否為0(此判斷方法也可用于判斷其他字符)
NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *content = [string stringByTrimmingCharactersInSet:whitespace];
if ([content length] == 0)
{
return YES;//length為0,返回YES
}
return NO;//其余情況返回NO
}
2、判斷字符串是否符合郵政編碼格式
+ (BOOL)checkZipCode:(NSString *)coder
{
if (coder.length != 6)
{
return NO;//不是6位,不符合。
}
NSError *error = NULL;
NSString *ruleString = @"[0-9]\\d{5}(?!\\d)";//郵政編碼規(guī)則
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:ruleString
options:NSRegularExpressionCaseInsensitive
error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:coder
options:0
range:NSMakeRange(0, [coder length])];
if(numberOfMatches == 1)
{
return YES;//numberOfMatches為1時(shí)符合規(guī)則。
}
else
{
return NO;
}
}
3、判斷輸入字符串是否全部是整數(shù)
+ (BOOL)isPureInt:(NSString *)string
{
NSScanner *scan = [NSScanner scannerWithString:string];
int value;
BOOL scanIntVal = [scan scanInt:&value] ;
BOOL scanAtEnd = [scan isAtEnd];
BOOL intValue = [string intValue] > 0;
//滿足以上三個(gè)條件則是整數(shù)
return (intVal && scanAtEnd && intValue);
}
4、判斷輸入是否全部都是字符(不允許有漢字、數(shù)字等,不能為空)
+ (BOOL)checkAllIsLetter:(NSString *)psw
{
BOOL hasOther = NO;
int length = [psw length];
if (length == 0)
{
return NO;//輸入字符串為空
}
//判斷是否有漢字
for (int i = 0; i < length; i++)
{
NSRange range = NSMakeRange(i, 1);
NSString *subString = [psw substringWithRange:range];
const char *cString = [subString UTF8String];
if (strlen(cString) == 3)
{
return NO;//有漢字
}
}
//判斷是否含有數(shù)字
const char *s = [psw UTF8String];//轉(zhuǎn)化成C語(yǔ)言字符串
for (int i = 0; i < length; i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
hasOther = YES;//含有數(shù)字
}
}
return !hasOther;
}
5、判斷用戶名是否符合要求( 1:小于30位。2:數(shù)字+字母。3:不能包含其它字符)
+ (BOOL)checkUserName:(NSString *)psw
{
BOOL hasOther = NO;
int length = [psw length];
//判斷是否是小于30位
if(length > 30)
{
return NO;
}
//判斷是否有漢字
for (int i = 0; i < length; i++)
{
NSRange range = NSMakeRange(i, 1);
NSString *subString = [psw substringWithRange:range];
const char *cString = [subString UTF8String];
if (strlen(cString) == 3)
return NO;
}
//判斷是否是數(shù)字+字母
const char *s=[psw UTF8String];
for(int i = 0;i < length; i++)
{
if (s[i] >= '0' && s[i] <= '9')
continue;
else if (s[i] >= 'a' && s[i] <= 'z')
continue;
else if (s[i] >= 'A' && s[i] <= 'Z')
continue;
else
hasOther = YES;
}
if(hasOther)
return NO;
else
return YES;
}
6、判斷密碼是否符合要求(1:8-16位置。2:數(shù)字+字母。3:不能全是數(shù)字或全是字母)
+ (BOOL)checkPsw:(NSString *)psw
{
BOOL hasNum = NO;
BOOL hasLetter = NO;
BOOL hasOther = NO;
int length = [psw length];
//判斷是否是8-16位
if (length > 16 || length < 8)
return NO;
//判斷是否有漢字
for (int i = 0; i < length; i++)
{
NSRange range = NSMakeRange(i, 1);
NSString *subString = [psw substringWithRange:range];
const char *cString = [subString UTF8String];
if (strlen(cString) == 3)
return NO;
}
//判斷是否是數(shù)字+字母
const char *s=[psw UTF8String];
for (int i = 0;i < length; i++)
{
if (s[i] >= '0' && s[i] <= '9')
hasNum = YES;
else if (s[i] >= 'a' && s[i] <= 'z')
hasLetter = YES;
else if (s[i] >= 'A' && s[i] <= 'Z')
hasLetter = YES;
else
hasOther = YES;
}
if (hasNum && hasLetter && !hasOther)
return YES;
else
return NO;
}
7、判斷電話號(hào)碼是否合法
+ (BOOL)isMobileNumber:(NSString *)mobileNum
{
/**
* 手機(jī)號(hào)碼
* 移動(dòng):134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
* 聯(lián)通:130,131,132,152,155,156,185,186
* 電信:133,1349,153,180,189
*/
//NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
/**
10 * 中國(guó)移動(dòng):China Mobile
11 * 134[0-8],135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,17**
12 */
NSString *CM = @"^1(34[0-8]|(3[5-9]|5[0127-9]|8[23478]|7[0-9])\\d)\\d{7}$";
/**
15 * 中國(guó)聯(lián)通:China Unicom
16 * 130,131,132,155,156,185,186,17**
17 */
//modify by zhangcz, 添加聯(lián)通4G,176的號(hào),而且沒(méi)有152的號(hào)
NSString *CU = @"^1(3[0-2]|5[56]|8[56]|7[6])\\d{8}$";
/**
20 * 中國(guó)電信:China Telecom
21 * 133,1349,153,180,189,17**
22 */
NSString *CT = @"^1((33|53|8[09]|7[0-9])[0-9]|349)\\d{7}$";
//NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
if (([regextestcm evaluateWithObject:mobileNum] == YES)
|| ([regextestct evaluateWithObject:mobileNum] == YES)
|| ([regextestcu evaluateWithObject:mobileNum] == YES))
{
return YES;
}
else
{
return NO;
}
}
8、判定string第一位是否是從A-Z
/*
*判定string第一位是否是從A-Z
*/
+ (BOOL)isAlphabet:(NSString *)firstAlphabet
{
NSString *IDENTITYNUM= @"^[A-Z]$";
NSPredicate *regextestBankNum = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",IDENTITYNUM];
if ([regextestBankNum evaluateWithObject:firstAlphabet] == YES)
{
return YES;
}
else
{
return NO;
}
}
9、驗(yàn)證數(shù)字及位數(shù)(numStr:需要驗(yàn)證的字符串,count:需要驗(yàn)證的位數(shù))
+ (BOOL)isNumber:(NSString*)numStr count:(int)count
{
NSString * regex = @"^[0-9]*$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:numStr] && numStr.length == count)
{
return YES;
}
return NO;
}
10、驗(yàn)證字母及位數(shù)
+(BOOL)isLetter:(NSString *)letterStr count:(int)count
{
NSString *regex = @"^[A-Za-z]*$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:letterStr] && letterStr.length == count)
{
return YES;
}
return NO;
}
11、驗(yàn)證是數(shù)字或字母
+(BOOL)isLetterOrNum:(NSString*)str count:(int)count
{
NSString * regex = @"^[A-Za-z0-9]*$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:str] && str.length == count)
{
return YES;
}
return NO;
}
12、判斷郵箱格式是否正確
+ (BOOL)isValidateEmail:(NSString*)email
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];
return [emailTest evaluateWithObject:email];
}