// 一 .电话号码正则表达式

-(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电话/密码/验证码/身份证的正则表达式的更多相关文章

  1. Android之利用正则表达式校验邮箱、手机号、密码、身份证号码等

    概述 现在Android应用在注册的时候基本会校验邮箱.手机号.密码.身份证号码其中一项或多项,特此收集了相关的正则表达式给大家分享.除了正则表达式,文章末尾提供Demo中有惊喜哦! 具体验证的图片效 ...

  2. swift 实现iOS手势密码、指纹密码、faceID

    本博客包含了如何实现iOS手势密码.指纹密码.faceID全步骤,包括了完整的代码. 先附上demo地址https://github.com/Liuyubao/LYBTouchID,支持swift3. ...

  3. 正则匹配:Email 密码强度 身份证 手机号 日期 数字每4个字空一格等

    正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升.下面是在前端开发中经常 ...

  4. 身份证号码 正则表达式 jquery

    现在的身份证为18位(最后一位可以是数字,可以是x,可以是X),老的身份证是15位(纯数字). 所以正则是: /(^\d{15}$)|(^\d{17}[\d|x|X]$)/ 扩展: 1 正则表达式的创 ...

  5. iOS --发送手机验证码收不到手机验证码

    方法一:使用受信任设备上显示的验证码. 如果您的受信任设备是iOS 9 及以上系统时,则验证码将自动显示在受信任设备上.此时你信任的设备上会弹出你在某地登录ID位置的小地图,有一个选择允许与不允许登录 ...

  6. 2016最新手机号码正则、身份证JS正则表达式

    js最新手机号码.身份证正则表达式   身份证正则: //身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1] ...

  7. iOS本地动态验证码生成-b

    用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #imp ...

  8. iOS 短信验证码倒计时按钮的实现

    验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法: 用NSTimer定时器, ...

  9. 通过Js对电话和姓名身份证等进行部分隐藏处理

    在进行web前端页面开发中,有时需要从后台获取用户数据来显示在前台页面,但是考虑到用户信息安全的问题,就需要对这些信息进行处理,使其不完全显示出来,例如姓名,两个字的显示姓,名字用*代替,电话前三位和 ...

随机推荐

  1. 通过url地址传递base64加密参数遇到的问题整理

    1. base64的加密解密方法在C#的类库中就有 QueryString中的加号变成了空格问题 Server.UrlEncode(username),获取到的编码又将等于号变成了%3d; 到底改怎么 ...

  2. LESS介绍及其与Sass的差异

    自从一个月前我偶然发现LESS之后我就开始坚定的使用它了.CSS本身对我来说从来不是问题,但是我很好奇使用变量来沿着一个调色盘为我的网站或模板创建一些东西的想法.拥有一个提供固定数量选项可选的色盘可以 ...

  3. 9.4用WebApi去连接外部认证服务

    原文链接:http://www.asp.net/web-api/overview/security/external-authentication-services VS2013和Asp.Net4.5 ...

  4. FadeTop – 定时休息提醒工具

    FadeTop 是款定时休息提醒工具,其特色是当设定时间到达时,将桌面渐变为指定的颜色,强制提醒但不影响桌面的任何操作 FadeTop is a visual break reminder for W ...

  5. 基于SSL协议的双向认证 - 双向认证 [3]

    1      SSL双向认证的实现 这里是基于SSL和Tomcat配置实现的,配置方法如下: 1.1    生成CA数字证书 首先需要配置OPENSSL环境变量. 我的OPENSSL配置文件路径是“D ...

  6. iOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档

    1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每 ...

  7. JQuery的Ajax跨域请求的解决方案

    客户端调用代码示例: var myurl = "http://js.yingdoo.com/embed/CAPTCHA.ashx?m=" + phone_val + "& ...

  8. String与InputStream互转的几种方法

    [java] view plain copy /** * 利用BufferedReader实现Inputstream转换成String <功能详细描述> * * @param in * @ ...

  9. HDU 1710 二叉树三种遍历

    Binary Tree Traversals Problem Description A binary tree is a finite set of vertices that is either ...

  10. 6.使用AngularJS模板来创建视图

    AngularJS模板包含定义了额外的功能,对DOM元素行为的表达式,过滤器和指令. 1.了解模板 表达式:类似js的代码段.在作用域的上下文被求值.可以放置在普通的HTML文本或属性值中 <p ...