文档章节

有关NSString的一些类扩展方法

默默沫沫shine
 默默沫沫shine
发布于 2016/05/23 13:24
字数 211
阅读 5
收藏 0
点赞 2
评论 0

//

//  NSString+MD5_LQ.m

//  BiJiaApp

//

//  Created by 华育 on 16/5/11.

//  Copyright © 2016年 华育. All rights reserved.

//

 

#import "NSString+MD5_LQ.h"

 

@implementation NSString (MD5_LQ)

 

+(NSString *)MD5_input:(NSString *)input

{

    const char *str = [input UTF8String];

    unsigned char result[CC_MD5_DIGEST_LENGTH];

    CC_MD5(str, (int)strlen(str), result);

    NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];//

    

    for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {

        [ret appendFormat:@"%02x",result[i]];

    }

    return ret;

}

 

+(BOOL )isTrueEmail:(NSString *)input

{

    NSString *email = @"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*$";

    NSPredicate *emailPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",email];

    return [emailPre evaluateWithObject:input];

}

 

//身份证号

+(BOOL)isTrueIdentity_Num:(NSString *)input

{

    NSString *Identity_Num = @"^[1-9][0-9]{5}(19[0-9]{2}|200[0-9]|2010)(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])[0-9]{3}[0-9xX]$";

    

    NSPredicate *Identity_NumPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",Identity_Num];

    

    return [Identity_NumPre evaluateWithObject:input];

}

 

//合法密码

+(BOOL)isTruePassWord:(NSString *)input

{

    NSString *PassWord = @"^[a-zA-Z][a-zA-Z0-9_]{4,15}$";

    

    NSPredicate *PassWordPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",PassWord];

    

    return [PassWordPre evaluateWithObject:input];

}

 

//汉字

+(BOOL)isTrueChinese_character:(NSString *)input

{

    NSString *Chinese_character = @"^[\u4e00-\u9fa5]{0,}$";

    

    NSPredicate *Chinese_characterPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",Chinese_character];

    

    return [Chinese_characterPre evaluateWithObject:input];

}

 

 

 

@end

 

© 著作权归作者所有

共有 人打赏支持
默默沫沫shine
粉丝 0
博文 13
码字总数 4174
作品 0
朝阳
程序员
编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记

类和接口(任何类可采用)的动态扩展 #import <Gizmo/Gizmo.h> @interface MyClass : NSObject { int count; id data; NSString* name; } - (id)initWithString:(NSString*)aName; + (MyClas......

芒果阿狸 ⋅ 2012/12/12 ⋅ 0

iOS开发的技巧,新的一篇,持续更新。。。(系列二)

上一篇:iOS开发的一些小技巧,持续更新。。。。(系列一) 20140331 1、说一说通知NSNotification和NSNotificationCenter 在iOS应用开发中有一个Notification Center的概念,它是一个单利对...

召唤攻城狮 ⋅ 2014/04/03 ⋅ 0

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四——自定义键盘控件 iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格。这篇博客,将介绍如何开发一个第三...

珲少 ⋅ 2015/07/31 ⋅ 9

Objective-C Category初体验

Categories可以为一个对象添加方法而不需要增加该类的子类或者更改当前的对象。实际上Categories通常被用来为已经存在的类添加方法,比如你可以自己为 NSString 字符串类添加你自己的方法。 ...

junwong ⋅ 2012/05/13 ⋅ 4

JSPatch库, 一个Apple官方支持的实现在线更新iOS应用的库

简介 项目主页: https://github.com/bang590/JSPatch 示例下载: https://github.com/ios122/ios122 JSPatch 可以让你用 JavaScript 书写原生 iOS APP。只需在项目引入极小的引擎,就可以使用...

ios122 ⋅ 2015/11/10 ⋅ 0

iOS中KVC与KVO的应用解析

iOS中KVC与KVO的应用解析 一、NSKeyValueCoding(KVC) 1、从一个小例子引入 KVC键值编码是Object-C为我们提供的一种对成员变量赋值的方法。在探讨其方法之前,我们先来看一个小例子: 首先,...

珲少 ⋅ 2015/05/05 ⋅ 0

iOS8新特性扩展(Extension)应用之二——分享插件

iOS8新特性扩展(Extension)应用之二——分享插件 在上一篇博客中,介绍了iOS8新特性扩展功能之一的Today功能:http://my.oschina.net/u/2340880/blog/485533,这里我们再介绍一下分享的扩展功...

珲少 ⋅ 2015/07/30 ⋅ 3

objective-c 拨打电话(NSString扩展类)

NSString扩展类的创建方法: 第一步:创建一个NSString+Phone 继承NSObject的类 第二步:在创建的.h文件中@interface NSStringPhone : NSObject 改为NSString(Phone); 第三步:在创建的.m文件中...

_pioneer_ ⋅ 2016/01/25 ⋅ 0

ios何时使用self.

在ObjC的学习中经常会碰到是否应该使用self的苦恼,或者说什么时候使用全局变量,什么时候self ? 大多数的答案是:“这与objc的存取方法有关” 怎么样才能有关呢?接下来通过几个小例子来看...

张志浩 ⋅ 2013/02/08 ⋅ 3

ios8 Extension之分享

下图为iPhone/iOS8中的【照片】分享: 1.首先创建工程,在我们的工程中新建一个Target:xcode->File->new->target 之后,模板中会为我们创建一个controller类,这个controller用于控制我们的...

南瓜宝宝 ⋅ 2015/11/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA RMI

什么是JAVA RMI Java RMI (Remote Method Invocation) 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Proced...

saulc ⋅ 15分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

linux-tao ⋅ 25分钟前 ⋅ 0

进入编辑模式 vim命令模式 vim实践

1.

oschina130111 ⋅ 25分钟前 ⋅ 0

mysql用户管理、常用sql语句、mysql数据库备份恢复

1. mysql用户管理 mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。 Mysql创建用户以及授权: grant all on...

laoba ⋅ 25分钟前 ⋅ 0

类型后面三个点(String...)和数组(String[])的区别

类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Obj...

流氓兔- ⋅ 31分钟前 ⋅ 0

JEPLUS表格组件之表格合并——JEPLUS软件快速开发平台

JEPLUS表格组件之表格合并 我们在列表配置时会遇见这样的一种情况,需要对个人的数据进行统一化,对一些数据进行归类,这样展示出来美观又直观,在这篇笔记中我来给大家介绍下如何配置出来专...

JEPLUS ⋅ 32分钟前 ⋅ 0

golang 并发中全局唯一操作

package main// go 携程共享 数据// 加锁解锁操作// 同步锁import ("sync""fmt")// 创建Once结构var once = sync.Once{}func computed(data *int, lock *sync.Mut...

304158 ⋅ 33分钟前 ⋅ 0

Mobx入门之二:asynchronous actions

这一节主要看mobx怎么实现asynchronous actions 1 要实现的demo功能 输入地名,查询天气,利用openweathermap api 2 思想 observable观察数据:location地点、temperature温度 observer响应式...

pengqinmm ⋅ 36分钟前 ⋅ 0

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 创建用户并授权: grant all on *.* to '用户名'@'ip' identified by '密码' //all是操作权限,*.*是库.表,指定格式是'用户名'@'localhost'才能用socket登录本地 gra...

lgsxp ⋅ 57分钟前 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部