正则表达式如何实现验证用户名、密码、手机号码、身份证功能
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,小编给大家分享一下正则表达式如何实现验证用户名、密码、手机号码、身份证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!示
千家信息网最后更新 2024年11月23日正则表达式如何实现验证用户名、密码、手机号码、身份证功能
小编给大家分享一下正则表达式如何实现验证用户名、密码、手机号码、身份证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
示例
//用户名+ (BOOL) validateUserName:(NSString *)name{ NSString *userNameRegex = @"^[A-Za-z0-9]{3,20}+$"; NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex]; BOOL B = [userNamePredicate evaluateWithObject:name]; return B;}//密码+ (BOOL) validatePassword:(NSString *)passWord{ NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$"; NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex]; return [passWordPredicate evaluateWithObject:passWord];}//判断手机号码格式是否正确+ (BOOL)valiMobile:(NSString *)mobile{ mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""]; if (mobile.length != 11) { return NO; }else{ /** * 移动号段正则表达式 */ NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$"; /** * 联通号段正则表达式 */ NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$"; /** * 电信号段正则表达式 */ NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$"; NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM]; BOOL isMatch2 = [pred1 evaluateWithObject:mobile]; NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM]; BOOL isMatch3 = [pred2 evaluateWithObject:mobile]; NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM]; BOOL isMatch4 = [pred3 evaluateWithObject:mobile]; if (isMatch2 || isMatch3 || isMatch4) { return YES; }else{ return NO; } }}/** * 验证身份证号码是否正确的方法 * * @param IDNumber 传进身份证号码字符串 * * @return 返回YES或NO表示该身份证号码是否符合国家标准 */+ (BOOL)isCorrect:(NSString *)IDNumber{ NSMutableArray *IDArray = [NSMutableArray array]; // 遍历身份证字符串,存入数组中 if (IDNumber.length == 18) { for (int i = 0; i < 18; i++) { NSRange range = NSMakeRange(i, 1); NSString *subString = [IDNumber substringWithRange:range]; [IDArray addObject:subString]; } }else{ for (int i = 0; i < 15; i++) { NSRange range = NSMakeRange(i, 1); NSString *subString = [IDNumber substringWithRange:range]; [IDArray addObject:subString]; } } // 系数数组 NSArray *coefficientArray = [NSArray arrayWithObjects:@"7", @"9", @"10", @"5", @"8", @"4", @"2", @"1", @"6", @"3", @"7", @"9", @"10", @"5", @"8", @"4", @"2", nil]; // 余数数组 NSArray *remainderArray = [NSArray arrayWithObjects:@"1", @"0", @"X", @"9", @"8", @"7", @"6", @"5", @"4", @"3", @"2", nil]; // 每一位身份证号码和对应系数相乘之后相加所得的和 int sum = 0; if (IDNumber.length == 18) { for (int i = 0; i < 17; i++) { int coefficient = [coefficientArray[i] intValue]; int ID = [IDArray[i] intValue]; sum += coefficient * ID; } }else{ for (int i = 0; i < 14; i++) { int coefficient = [coefficientArray[i] intValue]; int ID = [IDArray[i] intValue]; sum += coefficient * ID; } } // 这个和除以11的余数对应的数 NSString *str = remainderArray[(sum % 11)]; // 身份证号码最后一位 NSString *string; if (IDNumber.length == 18) { string = [IDNumber substringFromIndex:17]; }else{ string = [IDNumber substringFromIndex:14]; } // 如果这个数字和身份证最后一位相同,则符合国家标准,返回YES if ([str isEqualToString:string]) { return YES; } else { return NO; }}
以上是"正则表达式如何实现验证用户名、密码、手机号码、身份证功能"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
身份
身份证
号码
正则
表达式
密码
手机
手机号码
用户
用户名
验证
号段
数组
篇文章
功能
余数
内容
国家
国家标准
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
两台服务器共享
乡财政一卡通服务器
lol澳洲服务器
密码学与网络安全本科教材
ef操作数据库的步骤
网络安全常用的技术是
软件开发注意的问题
海康平台管理服务器改ip
网络安全公益讲座2021年视频
超凡先锋服务器断开是什么意思
海珠app软件开发服务商
学软件还是网络安全
南京国际网络安全
为什么流量上网没有服务器
警院的网络安全专业
网络安全宣教活动
广州软件开发技校
如何往数据库添加信息
大数据数据库的特点
autojs数据库增删改
云服务器厂商哪家最好
服务器不好使
博兴陶瓷软件开发服务
共享在服务器上找不到打印
网络安全渗透测试报价
网络安全的内容有哪些
大型数据库吗
辽宁专业软件开发多少钱
海宁网络安全
学软件开发的项目心得怎么写