浅谈iOS应用中的相关正则及验证
1、手机号码的验证正则
正则表达式:
^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$
详细解释
解释:
•^...$:
^:开始
$:结束
中间为要处理的字串
•(13[0-9]):以13开头接下来一位为0-9之间的数
13:以13开头
[0-9]:分割语法,13后面是0-9之间的数
•|:或(or),将前后两个匹配条件进行or运算
•(15[^4\\D]):以15开头接下来一位是除4之外的0-9数字
15:以15开头
[^4\\D]:除了4之外的所有0-9的数字
^:此处为非^4为除4之外的任何字符
\D:\D为非数字`\`为转义字符
•(18[0,2,5-9]):以18开头接下来一位为0或者2或者5-9之间的数
•\d{8}:8个0-9的数字
\d:0-9之间的数字
{8}:匹配8次
正则表达式的使用:
+(BOOL)isMobileNumber:(NSString*)mobileNumber
{
//手机号以13,15,18开头,八个\d数字字符
NSString*phoneRegex=@"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
NSPredicate*phoneTest=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",phoneRegex];
return[phoneTestevaluateWithObject:mobileNumber];
}
2、身份证验证
/**
*身份证号
*@paramNSString身份证号字符串
*@return是否身份证号
*d{14}14位数字
*/
+(BOOL)validateIdentityCard:(NSString*)identityCard
{
BOOLflag;
if(identityCard.length<=0){
flag=NO;
returnflag;
}
NSString*regex2=@"^(\\d{14}|\\d{17})(\\d|[xX])$";
NSPredicate*identityCardPredicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",regex2];
return[identityCardPredicateevaluateWithObject:identityCard];
}
/**
*精确验证身份证号
*@paramIdentityNum身份证号
*@return是否是身份证号
*/
+(BOOL)isValidWithIdentityNum:(NSString*)IdentityNum{
//先正则匹配
//......
//计算最后一位余数
NSArray*arrExp=[NSArrayarrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2",nil];
NSArray*arrVaild=[NSArrayarrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2",nil];
longsum=0;
for(inti=0;i<(IdentityNum.length-1);i++){
NSString*str=[IdentityNumsubstringWithRange:NSMakeRange(i,1)];
sum+=[strintValue]*[arrExp[i]intValue];
}
intidx=(sum%11);
if([arrVaild[idx]isEqualToString:[IdentityNumsubstringWithRange:NSMakeRange(IdentityNum.length-1,1)]]){
returnYES;
}else{
returnNO;
}
returnYES;
}
3、邮箱验证
/**
*验证邮箱
*
*@paramemail邮箱字符串
*
*@return是否邮箱
*
*[A-Z0-9a-z]表示A-Z与0-9与a-z任意一个
*{2,4}表示字符位大于2个,小于4个
*/
+(BOOL)validateEmail:(NSString*)email
{
NSString*emailRegex=@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate*emailTest=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",emailRegex];
return[emailTestevaluateWithObject:email];
}
/**
*用户名验证
*
*@paramNSString用户名字符串
*
*@return是否用户名
*{6,20}6到20位
*/
+(BOOL)validateUserName:(NSString*)name
{
NSString*userNameRegex=@"^[A-Za-z0-9]{6,20}+$";
NSPredicate*userNamePredicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",userNameRegex];
BOOLB=[userNamePredicateevaluateWithObject:name];
returnB;
}
5、密码认证
/**
*密码认证
*
*@paramNSString密码字符串
*
*@return是否密码
*{6,20}6到20位
*/
+(BOOL)validatePassword:(NSString*)passWord
{
NSString*passWordRegex=@"^[a-zA-Z0-9]{6,20}+$";
NSPredicate*passWordPredicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",passWordRegex];
return[passWordPredicateevaluateWithObject:passWord];
}
6、验证昵称
/**
*验证昵称
*
*@paramNSString昵称字符串
*
*@return是否昵称
*{4,8}4到8位
*/
+(BOOL)validateNickname:(NSString*)nickname
{
NSString*nicknameRegex=@"^[\u4e00-\u9fa5]{4,8}$";
NSPredicate*passWordPredicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",nicknameRegex];
return[passWordPredicateevaluateWithObject:nickname];
}
6、4位验证码验证
/**
*4位验证码
*
*@paramverifyCode验证码
*
*@return是否是验证码
*/
+(BOOL)validateVerifyCode:(NSString*)verifyCode
{
BOOLflag;
if(verifyCode.length<=0){
flag=NO;
returnflag;
}
NSString*regex2=@"^(\\d{4})$";
NSPredicate*verifyCodePredicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",regex2];
return[verifyCodePredicateevaluateWithObject:verifyCode];
}
以上这篇浅谈iOS应用中的相关正则及验证就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。