#pragma mark 获取设备id

+ (NSString *)getDeviceId

{

NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];

return identifierForVendor;

}

#pragma mark 判断字符串是否为空,null,nil等...(YES:为空)

+ (BOOL)valString:(NSString *)string {

NSString *toString = [NSString stringWithFormat:@"%@",string];

if (toString == nil || toString == NULL) {

return YES;

}

if ([toString isKindOfClass:[NSNull class]]) {

return YES;

}

if ([toString isEqualToString:@""]) {

return YES;

}

if ([toString isEqualToString:@"(null)"]) {

return YES;

}

if ([toString isEqualToString:@"<null>"]) {

return YES;

}

if ([toString stringByReplacingOccurrencesOfString:@" " withString:@""].length<=0) {

return YES;

}

return NO;

}

#pragma mark 判断字符串是否是数字 是返回本身不是返回0

+ (NSString *)stringTurnNumber:(NSString *)string {

NSString *toString = [[NSString stringWithFormat:@"%@",string] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

if ([self isNumText:toString]) {

return toString;

}else{

return @"0";

}

}

#pragma mark 判断字符串是否为空,空返回@""不为空返回本身

+ (NSString *)stringTurnString:(NSString *)string {

if ([self valString:string]) {

return @"";

}else{

return [NSString stringWithFormat:@"%@",string];

}

}

#pragma mark 是否是纯数字

+ (BOOL)isNumText:(NSString *)str {

str = [NSString stringWithFormat:@"%@",str];

NSScanner* scan = [NSScanner scannerWithString:str];

double val;

return[scan scanDouble:&val] && [scan isAtEnd];

}

#pragma mark 判断输入的密码是否是数字和字母组成

+(BOOL)isPassword:(NSString *)string{

NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_"];

s = [s invertedSet];

NSRange r = [string rangeOfCharacterFromSet:s];

if (r.location !=NSNotFound) {

return NO;

}

return YES;

}

#pragma mark 验证身份证号码

+ (BOOL) IsIdentityCard:(NSString *)IDCardNumber

{

if (IDCardNumber.length <= 0) {

return NO;

}

NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$";

NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];

return [identityCardPredicate evaluateWithObject:IDCardNumber];

}

#pragma mark 验证手机号

+ (BOOL) IsPhoneNumber:(NSString *)number

{

NSString *phoneRegex1=@"1[34578]([0-9]){9}";

NSPredicate *phoneTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex1];

return  [phoneTest1 evaluateWithObject:number];

}

#pragma mark 验证银行卡

+ (BOOL) IsBankCard:(NSString *)cardNumber

{

if(cardNumber.length==0)

{

return NO;

}

NSString *digitsOnly = @"";

char c;

for (int i = 0; i < cardNumber.length; i++)

{

c = [cardNumber characterAtIndex:i];

if (isdigit(c))

{

digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];

}

}

int sum = 0;

int digit = 0;

int addend = 0;

BOOL timesTwo = false;

for (NSInteger i = digitsOnly.length - 1; i >= 0; i--)

{

digit = [digitsOnly characterAtIndex:i] - '0';

if (timesTwo)

{

addend = digit * 2;

if (addend > 9) {

addend -= 9;

}

}

else {

addend = digit;

}

sum += addend;

timesTwo = !timesTwo;

}

int modulus = sum % 10;

return modulus == 0;

}

#pragma mark - NSIndexPath 根据TableView、Cell子视图,获取indexPath

+ (NSIndexPath *)indexPathWithTableView:(UITableView *)tableView cellSubview:(UIView *)view {

if (![tableView isKindOfClass:[UITableView class]]) return nil;

if (![view isKindOfClass:[UIView class]]) return nil;

if ([view isKindOfClass:[UITableViewCell class]]) return [tableView indexPathForCell:(UITableViewCell *)view];

id cell = view;

while (YES) {

cell = [cell superview];

if ([cell isKindOfClass:[UITableViewCell class]]) return [tableView indexPathForCell:(UITableViewCell *)cell];

if (![cell isKindOfClass:[UIView class]]) return nil;

}

return nil;

}

ios开发常用封装的实用方法的更多相关文章

  1. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  2. iOS开发 GET、POST请求方法(NSURLSession篇)

    NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...

  3. IOS开发常用设计模式

    IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...

  4. iOS开发 GET、POST请求方法:NSURLSession篇

    NSURLConnection,在iOS 9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: iOS开发 GET.POST请求方法(NSURLConnectio ...

  5. iOS开发--常用技巧 (MJRefresh详解)

         iOS开发--常用技巧 (MJRefresh详解) https://github.com/CoderMJLee/MJRefresh 下拉刷新01-默认 self.tableView.head ...

  6. iOS开发 GET、POST请求方法(NSURLConnection篇)

    Web Service使用的主要协议是HTTP协议,即超文本传输协议. HTTP/1.1协议共定义了8种请求方法(OPTIONS.HEAD.GET.POST.PUT.DELETE.TRACE.CONN ...

  7. iOS开发中的Html解析方法

    iOS开发中的Html解析方法 本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标 ...

  8. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  9. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)

    图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下 ...

随机推荐

  1. VSS迁移详细教程

    本文默认迁移机和目标机已是安装好VSS服务,如果没装好参见VSS+SourceAnywhere for VSS搭建版本控制系统教程 如果你只想以最快的速度迁移库而并不关心VSS的一些操作使用,那么可直 ...

  2. VisualSVN+TortoiseSVN搭建版本控制系统教程

    Tortoise VisualSVN用作SVN的服务端,TortoiseSVN用作SVN的客户端. 一.安装和配置VisualSVN 1.1安装VisualSVN 下载链接:https://www.v ...

  3. [POJ3416]Crossing

    Problem 给你n个点,m个询问,每个询问有x, y 问以(x,y)为原点建立的平面直角坐标系分割的第一象限和第三象限的点数和减去第二象限和第四象限的点数和 Solution 用2个树状数组维护一 ...

  4. Docker容器使用jenkins部署web项目--总结(二)

    (1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat.   新建maven项目,添加findbugs plugin. 使用docker启动jenkins,go ...

  5. 玩linux就是不断的踩坑,踩坑。最近的坑。xpath firefox兼容问题,抓取表格。

    最近在抓取一个页面表格时发现,用firefox提取的xpath,不能用,仔细分析后,发现是提取的xpath多了一个tbody标签.在xpath路径中删掉这段就好了. last_A5='/html/bo ...

  6. python 正则表达式笔记

    #!usr/bin/env python3 #-*- coding:utf-8 -*- #正则表达式 #在正则表达式中,如果直接给出字符,就是精确匹配.用\d可以匹配一个数字,\w可以匹配一个字母.数 ...

  7. CString、string、const char*的相互转换

    环境:vs2010 1.CString转string //第一种方式: CString str = _T("CSDN"); USES_CONVERSION; std::string ...

  8. jackson中的@JsonBackReference

    #    StackOverflowError / 无限递归 / json递归 / JsonBackReference 环境:springmvc+hibernate+json 在controller返 ...

  9. GD2模块-图像处理

    GD2模块-图像处理 1.图像处理模块的主要功能: a) 验证码 b) 加盖水印 c) 缩略图 d) 帖子图片签名 e) 在线LOGO制作 2确认PHP是否支持图像处理 检测PHPINFO文件中是否存 ...

  10. Oracle中把一张表查询结果插入到另一张表中

      1. 新增一个表,通过另一个表的结构和数据 create table XTHAME.tab1 as select * from DSKNOW.COMBDVERSION 2. 如果表存在: inse ...