这里是用的类扩展,封装了验证是否是邮箱,手机号,工商税号,身份证号,链接,车牌号等等功能.

.h文件

#import <Foundation/Foundation.h>

@interface NSString (Validate)

/**

*  是否为空

*

*  @return

*/

- (BOOL)isEmpty;

/**

*  长度位于min到max之间

*

*  @param min

*  @param max

*

*  @return

*/

- (BOOL)betweenWith:(int)min and:(int)max;

/**

*  必须大于

*

*  @param length

*

*  @return

*/

- (BOOL)hasGreaterThanLength:(int)length;

/**

*  等于长度

*

*  @param length

*

*  @return

*/

- (BOOL)equalLength:(int)length;

/**

*  是否大于长度

*

*  @param number

*

*  @return

*/

- (BOOL)isGreaterThanNumber:(double)number;

/**

*  是否小于长度

*

*  @param number

*

*  @return

*/

- (BOOL)isLessThanNumber:(double)number;

/**

*  验证车牌号

*

*  @return

*/

- (BOOL)isEqualToCardNumber;

/**

*  验证邮政编码

*

*  @return

*/

- (BOOL)isEqualToPostalCode;

/**

*  验证IP

*

*  @return

*/

- (BOOL)isEqualToIP;

/**

*  验证工商税号

*

*  @return

*/

- (BOOL)isEqualToTaxNumber;

/**

*  是否是数字(不区分正负数)

*

*  @return

*/

- (BOOL)isEqualToNumber;

/**

*  是否是小数(不区分正负数)

*

*  @return

*/

- (BOOL)isEqualToDecimal;

/**

*  是否是11位手机号

*

*  @return

*/

- (BOOL)isEqualToPhone;

/**

*  是否是国内电话号码,匹配形式如xxxx-xxxxxxx(xxxxxxxx)或xxx-xxxxxxxx

*

*  @return

*/

- (BOOL)isEqualToTelPhone;

/**

*  是否是邮箱地址

*

*  @return

*/

- (BOOL)isEqualToEmail;

/**

*  是否是URl

*

*  @return

*/

- (BOOL)isEqualToURL;

/**

*  是否是中文名称

*

*  @return

*/

- (BOOL)isEqualToCNName;

/**

*  是否是15位或18位身份证号码

*

*  @return

*/

- (BOOL)isEqualToIdentity;

/**

*  匹配正则

*

*  @param regex 正则表达式

*

*  @return

*/

- (BOOL)isEqualToRegex:(NSString *)regex;

@end

.m文件

#import "NSString+Validate.h"

@implementation NSString (Validate)

- (BOOL)isEmpty

{

if (self.length < 1) {

return NO;

}

return ([self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length < 1);

}

- (BOOL)betweenWith:(int)min and:(int)max

{

if ([self isEmpty]) {

return NO;

}

return (self.length >= min && self.length < max);

}

- (BOOL)hasGreaterThanLength:(int)length

{

if ([self isEmpty]) {

return NO;

}

return self.length > length;

}

- (BOOL)equalLength:(int)length

{

if ([self isEmpty]) {

return NO;

}

return self.length == length;

}

- (BOOL)isGreaterThanNumber:(double)number

{

return [self doubleValue] > number;

}

- (BOOL)isLessThanNumber:(double)number

{

return [self doubleValue] < number;

}

- (BOOL)isEqualToCardNumber

{

return [self validateString:@"^[A-Za-z]{1}[A-Za-z_0-9]{5}$"];

}

- (BOOL)isEqualToPostalCode

{

return [self validateString:@"^[0-8]\\d{5}(?!\\d)$"];

}

- (BOOL)isEqualToIP

{

BOOL rc = [self validateString:@"^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$"];

if (rc) {

NSArray *componds = [self componentsSeparatedByString:@","];

BOOL v = YES;

for (NSString *s in componds) {

if (s.integerValue > 255) {

v = NO;

break;

}

}

return v;

}

return NO;

}

- (BOOL)isEqualToTaxNumber

{

return [self validateString:@"[0-9]\\d{13}([0-9]|X)$"];

}

- (BOOL)isEqualToNumber

{

return [self validateString:@"\\d+"];

}

- (BOOL)isEqualToDecimal

{

return [self validateString:@"\\d+(\\.\\d+)?"];

}

- (BOOL)isEqualToPhone

{

return [self validateString:@"1[3|4|5|7|8][0-9]{9}"];

}

- (BOOL)isEqualToTelPhone

{

return [self validateString:@"\\d{3}(-)?\\d{8}|\\d{4}(-)?\\d{7,8}"];

}

- (BOOL)isEqualToEmail

{

return [self validateString:@"\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"];

}

- (BOOL)isEqualToURL

{

return [self validateString:@"[http|https]+://[0-9a-zA-Z]+[0-9a-zA-Z.-]*.[a-zA-Z]{2,4}/?[^\\s]*"];

}

- (BOOL)isEqualToCNName

{

return [self validateString:@"[\\u4E00-\\u9FA5]{2,5}(?:·[\\u4E00-\\u9FA5]{2,5})*"];

}

- (BOOL)isEqualToIdentity

{

return [self validateString:@"\\d{15}|\\d{18}|\\d{17}[x|X]"];

}

- (BOOL)isEqualToRegex:(NSString *)regex

{

return [self validateString:regex];

}

- (BOOL)validateString:(NSString *)regex

{

if ([self isEmpty]) {

return NO;

}

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

BOOL result =  [predicate evaluateWithObject:self];

return result;

}

@end

iOS开发正则表达式,验证是否是邮箱,手机号,银行卡号,URL等等相关推荐

  1. Java用正则表达式验证用户输入的手机号和QQ邮箱

    import java.util.Scanner;public class Test {public static void main(String[] args) {//用正则验证 用户输入的手机号 ...

  2. 正则表达式验证座机号码,手机号等

    用js正则表达式验证手机号,座机号和email格式 关键字: javascript Js代码 /**   *author    zhutou   **/    //手机号:13912345678   ...

  3. Android 正则表达式验证手机和邮箱格式是否正确

    demo例子: package it.com.cc; import java.util.regex.Matcher; import java.util.regex.Pattern; import an ...

  4. iOS开发--正则表达式

    目录[-] 正则表达式简单语法总结 一.什么是正则表达式 二.正则表达式的基础语法 1.字面值 2.特殊字符(元字符) (1)句号 (2)字符类([]) (3)区间符号(-) (4)取反符号(^) ( ...

  5. iOS开发之苹果公司联系邮箱大全

    苹果开发者热线: 4006701855 申请邓氏编码出问题了可以拨打客服热线: 4008202669 AppReview@apple.com 应用在提交后(处于"审核中"),应用和 ...

  6. 正则表达式验证11位数的手机号

    getShortMessageCode() {let regs = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-3 ...

  7. iOS开发 - 正则表达式 RegexKitLite框架

    准备工作 使用RegexKitLite正则表达式需要以下工作: 1.RegexKitLite官方网址(内含使用教程):http://regexkit.sourceforge.net/RegexKitL ...

  8. PHP正则表达式验证手机号、邮箱、身份证号码、姓名等

    在PHP编写的程序中,为了保证代码本身的流程安全,少不了对数据流进行一些效验的工作.而PHP给我提供了正则表达式验证函数,我们可以很方便的通过正则表达式的验证函数,来检查数据流是否符合标准. 今天我们 ...

  9. html正则表达式验证电话号码,Javascript正则表达式验证账号、手机号、电话和邮箱的合法性...

    正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象.这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match.rep ...

最新文章

  1. 8种最坑的SQL错误用法,第一个就很坑?
  2. Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many
  3. a1708硬盘转接口_2015年A1502 Macbook Pro更换硬盘
  4. 拯救react的hooks:react的问题和hooks的作用
  5. 和搜狗输入法快捷键冲突_电脑输入法怎么设置成搜狗双拼?
  6. 输入文件c语言程序,C语言程序设计 对文件的输入输出.ppt
  7. php百度搜索框代码,基于jquery的仿百度搜索框效果代码_jquery
  8. Springsecurity之AuthenticationProvider
  9. 分布式事务架构设计原理
  10. std c++ 获取运行时间封装
  11. ChaiNext:比特币再度考验5W关口
  12. qtextedit 默认文案_Qt设置QTextEdit和QLabel的字体颜色 | 学步园
  13. java队列和栈实现原理_Java特性队列和栈的堵塞原理解析
  14. 2022电工杯AB题思路分析
  15. EXCEL VBA编程进阶-曾贤志-专题视频课程
  16. pe显示linux分区文件,找到了linux分区顺序错乱修复方法
  17. ESP车身电子稳定系统
  18. linux 3.0实时性,如何1分钟内对 Linux 性能快速分析(113资讯网)
  19. bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles
  20. SkyWalking系列之skywalking go agent配置使用

热门文章

  1. 【Lua正则表达式】解析匹配优酷电视剧集的下载地址用来批量下载
  2. oracle 获取第一条数据
  3. php查询下级分类,php+mysql查询实现无限下级分类树输出示例
  4. ECM技术学习:重叠块运动补偿(Overlapped Block Motion Compensation)
  5. 哈理工大学ACM程序设计全国邀请赛D D Pairs(FFT)
  6. 美国大学生数学建模竞赛赛题涉及领域
  7. 客观评价C#的优点和缺点
  8. intent总结 Android
  9. python加速器numba使用
  10. java mschart_asp.net微软图表控件MsChart