浅谈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应用中的相关正则及验证就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。