IOS正则表达式之验证密码身份证手机号
程序员文章站
2023-12-18 14:59:34
ios正则表达式之验证密码身份证手机号
在项目中,我们在验证用户的输入,最简单的方法就是使用正则表达式了,ios系统也提供很方便的方法,让我们可以轻松的来验证用户名,密码...
ios正则表达式之验证密码身份证手机号
在项目中,我们在验证用户的输入,最简单的方法就是使用正则表达式了,ios系统也提供很方便的方法,让我们可以轻松的来验证用户名,密码,身份证好 ,手机号等;
下面附上我在项目中用到的正则表达式的验证方法,
由于比较常用,大家最好封装成+静态的方法,便于使用:
我把常用的方法,使用静态方法封装到一个 utils类里面,直接使用类名调用即可:
头文件:
// // utils.h // autosizing // // created by on 15/2/7. // copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. all rights reserved. // #import <foundation/foundation.h> @interface utils : nsobject #pragma 正则匹配手机号 + (bool)checktelnumber:(nsstring *) telnumber; #pragma 正则匹配用户密码6-18位数字和字母组合 + (bool)checkpassword:(nsstring *) password; #pragma 正则匹配用户姓名,20位的中文或英文 + (bool)checkusername : (nsstring *) username; #pragma 正则匹配用户身份证号 + (bool)checkuseridcard: (nsstring *) idcard; #pragma 正则匹员工号,12位的数字 + (bool)checkemployeenumber : (nsstring *) number; #pragma 正则匹配url + (bool)checkurl : (nsstring *) url; @end
.m实现文件:
// // utils.m // autosizing // // created by on 15/2/7. // copyright (c) 2015年 http://blog.csdn.net/yangbingbinga. all rights reserved. // #import "utils.h" @implementation utils #pragma 正则匹配手机号 + (bool)checktelnumber:(nsstring *) telnumber { nsstring *pattern = @"^1+[3578]+\\d{9}"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:telnumber]; return ismatch; } #pragma 正则匹配用户密码6-18位数字和字母组合 + (bool)checkpassword:(nsstring *) password { nsstring *pattern = @"^(?![0-9]+$)(?![a-za-z]+$)[a-za-z0-9]{6,18}"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:password]; return ismatch; } #pragma 正则匹配用户姓名,20位的中文或英文 + (bool)checkusername : (nsstring *) username { nsstring *pattern = @"^[a-za-z\u4e00-\u9fa5]{1,20}"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:username]; return ismatch; } #pragma 正则匹配用户身份证号15或18位 + (bool)checkuseridcard: (nsstring *) idcard { nsstring *pattern = @"(^[0-9]{15}$)|([0-9]{17}([0-9]|x)$)"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:idcard]; return ismatch; } #pragma 正则匹员工号,12位的数字 + (bool)checkemployeenumber : (nsstring *) number { nsstring *pattern = @"^[0-9]{12}"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:number]; return ismatch; } #pragma 正则匹配url + (bool)checkurl : (nsstring *) url { nsstring *pattern = @"^[0-9a-za-z]{1,50}"; nspredicate *pred = [nspredicate predicatewithformat:@"self matches %@", pattern]; bool ismatch = [pred evaluatewithobject:url]; return ismatch; } @end
使用方法示例:
if ([utils checktelnumber:@"18801112020"]) //匹配结果,为yes { nslog(@"手机号格式正确"); } else //匹配结果为no { nslog(@"手机号格式错误"); }
返回一个布尔值,根据布尔值,我们可以做相应的操作
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!