ios电话/密码/验证码/身份证的正则表达式
// 一 .电话号码正则表达式
-(BOOL)testPhoneNumber:(NSString *)text
{
NSString *regex =@"(13[0-9]|0[1-9]|0[1-9][0-9]|0[1-9][0-9][0-9]|15[0-9]|18[02356789])\\d{8}|17\\d{9}";
NSPredicate *mobileTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [mobileTest evaluateWithObject:text];
}
// 二.
/**< 手机校验正则 */
- (BOOL)phoneNumberIsTure:(UITextField *)textField
{
NSString *phoneNumeberIsTureStr = @"^1[0-9][0-9]\\d{4,8}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNumeberIsTureStr];
BOOL isTure = [pred evaluateWithObject:textField.text];
return isTure;
}
//验证码正则
-(BOOL)testCodeNumber:(NSString *)text
{
NSString *regex =@"\\d{6}";
NSPredicate *mobileTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [mobileTest evaluateWithObject:text];
}
//密码校验 - 修改密码正则
- (BOOL)passWordIsTure:(UITextField *)textField
{
NSString *passWordGex = @"^(?![A-Z]*$)(?![a-z]*$)(?![0-9]*$)(?![^a-zA-Z0-9]*$)\\S+$";
NSPredicate *passWordPred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordGex];
BOOL isPassWord = [passWordPred evaluateWithObject:textField.text];
return isPassWord;
}
// 获取验证码按钮 -- 通过改方法获取验证码倒计时
- (IBAction)smsBtnClick:(UIButton *)sender {
NSLog(@"获取验证码按钮");
if (![self testPhoneNumber:self.phoneNum.text]) {
HB_ALERT_AFTER(@"请正确输入手机号码", 1.5);
return;
}
// 交出第一响应者
[self.phoneNum resignFirstResponder];
[self.putSmsNum resignFirstResponder];
// self.smsCodeBtn.userInteractionEnabled =NO;
// UIView *view = [[UIView alloc]initWithFrame:sender.bounds];
// view.alpha = 0.5;
// [sender addSubview:view];
[sender setSelected:YES];
// 获取验证码
NSMutableDictionary *att = [NSMutableDictionary dictionary];
[att setObject:self.phoneNum.text forKey:@"mobile"];
[att setObject:@"1" forKey:@"status"];
[HBRequest postURLString:@"/api/user/xxxxx" parameters:att success:^(id responseObject) {
NSLog(@"res -- %@",responseObject);
HB_ALERT_AFTER(@"已将验证码发送到您的手机", 1.0f);
if (sender.userInteractionEnabled == YES) {
sender.titleLabel.font = [UIFont systemFontOfSize:12];
__block int timeout = 59;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0);
dispatch_source_set_event_handler(timer, ^{
if (timeout <= 0) {
dispatch_source_cancel(timer);
dispatch_async(dispatch_get_main_queue(), ^{
sender.userInteractionEnabled = YES;
self.phoneNum.userInteractionEnabled =YES;
sender.titleLabel.font = [UIFont systemFontOfSize:12];
[sender setTitle:[NSString stringWithFormat:@"重发"] forState:UIControlStateNormal];
});
}else{
int seconds = timeout % 60;
NSString *strTime = [NSString stringWithFormat:@"%.2d",seconds];
dispatch_async(dispatch_get_main_queue(), ^{
[sender setTitle:[NSString stringWithFormat:@"%@秒后重发",strTime] forState:UIControlStateNormal];
sender.userInteractionEnabled = NO;
self.phoneNum.userInteractionEnabled = NO;
});
timeout--;
}
});
dispatch_resume(timer);
}else{
}
} failure:^(NSError *error) {
NSLog(@"err -- %@",error);
}];
}
//---------------身份证正则---------------
- (BOOL)checkId5:(NSString *)idStr
{
NSString * prex = @"^(^\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$";
if ([idStr isMatchedByRegex:prex]) {
return YES;
}
return NO;
}
ios电话/密码/验证码/身份证的正则表达式的更多相关文章
- Android之利用正则表达式校验邮箱、手机号、密码、身份证号码等
概述 现在Android应用在注册的时候基本会校验邮箱.手机号.密码.身份证号码其中一项或多项,特此收集了相关的正则表达式给大家分享.除了正则表达式,文章末尾提供Demo中有惊喜哦! 具体验证的图片效 ...
- swift 实现iOS手势密码、指纹密码、faceID
本博客包含了如何实现iOS手势密码.指纹密码.faceID全步骤,包括了完整的代码. 先附上demo地址https://github.com/Liuyubao/LYBTouchID,支持swift3. ...
- 正则匹配:Email 密码强度 身份证 手机号 日期 数字每4个字空一格等
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升.下面是在前端开发中经常 ...
- 身份证号码 正则表达式 jquery
现在的身份证为18位(最后一位可以是数字,可以是x,可以是X),老的身份证是15位(纯数字). 所以正则是: /(^\d{15}$)|(^\d{17}[\d|x|X]$)/ 扩展: 1 正则表达式的创 ...
- iOS --发送手机验证码收不到手机验证码
方法一:使用受信任设备上显示的验证码. 如果您的受信任设备是iOS 9 及以上系统时,则验证码将自动显示在受信任设备上.此时你信任的设备上会弹出你在某地登录ID位置的小地图,有一个选择允许与不允许登录 ...
- 2016最新手机号码正则、身份证JS正则表达式
js最新手机号码.身份证正则表达式 身份证正则: //身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1] ...
- iOS本地动态验证码生成-b
用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #imp ...
- iOS 短信验证码倒计时按钮的实现
验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法: 用NSTimer定时器, ...
- 通过Js对电话和姓名身份证等进行部分隐藏处理
在进行web前端页面开发中,有时需要从后台获取用户数据来显示在前台页面,但是考虑到用户信息安全的问题,就需要对这些信息进行处理,使其不完全显示出来,例如姓名,两个字的显示姓,名字用*代替,电话前三位和 ...
随机推荐
- Javascript高级程序设计——面向对象之实现继承
原型链: 构造函数中都有一个prototype属性指针,这个指针指向原型对象,而创建的实例也有指向这个原型对象的指针__proto__.当实例查找方法时先在实例上找,找不到再通过__proto__到原 ...
- linux 下开放端口问题
Linux安装Tomcat后本地可以正常访问,可是这时Tomcat还不能被外界访问需要在Linux默认防护墙上打开8080端口 打开 /etc/sysconfig/iptables [root@l ...
- HDU 4793 Collision(2013长沙区域赛现场赛C题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4793 解题报告:在一个平面上有一个圆形medal,半径为Rm,圆心为(0,0),同时有一个圆形范围圆心 ...
- BZOJ2599——[IOI2011]Race
0.题意:给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 1.分析:水题一道,一波树分治就好 我们可以发现这个题的K是比较小的,才100w,那么我们可以树分治一下,在遍历每一棵子树的 ...
- 微软“One Windows”的梦想已经破灭了吗?
导读 Windows 10 正式公布的时候,微软曾表示该系统将开启更为个性化的计算新纪元,可让用户在使用各类设备处理各项事务时,享受到一致.熟悉和可兼容的体验,从 Xbox 到 PC 和手机,再到平板 ...
- [KOJ6997]旅行商问题二
[COJ6997]旅行商问题二 试题描述 Bob是一名旅行商,Bob同时也是一个哲学家,他深知到了一个地方就要掏出钱包把所有景点都玩到.一个城市有N个景点,其中N-1条无向道路链接成一个连通图.Bob ...
- 2016年11月14日--SQL创建数据库、表-查、插、删、改
--创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...
- CCF 模拟D 动态规划
http://115.28.138.223:81/view.page?opid=4 这道题写的我醉醉的,想建一棵指定深度的树最后统计满足条件的个数 居然没去考虑这样必然超时!!!代码写的也是醉了,把没 ...
- TimeVal类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 这里是时间相关类的第一个部分. TimeVal类 TimeVal类定义在live555source ...
- xadmin 自定义视图在uwsgi部署时的一坑
比如修改登录页的template,代码如下: xadmin.site.register(xadmin.views.LoginView, login_template="card_pool/s ...