正则表达式用好了在一定程度上能够简化的我们的代码,是我们的代码业务逻辑更清晰。当然虽然写了这篇博客我也不知道这些正则表达式每个字符的含义!
1、判断字符串仅为中文
^[\u4e00-\u9fa5]{0,}$
2、校验密码强度:只能为大小写字母或数字 不能包含特殊字符的8-16位字符串
^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}
3、身份证号
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$ **//15位**
^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$ **//18位**
(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$) **//通用即15位或18位**
3、手机号
中国移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$
中国联通:130,131,132,152,155,156,185,186
^1(3[0-2]|5[256]|8[56])\\d{8}$
中国电信:133,1349,153,180,189
^1((33|53|8[09])[0-9]|349)\\d{7}$
大陆地区固话及小灵通:区号:010,020,021,022,023,024,025,027,028,029
^0(10|2[0-5789]|\\d{3})\\d{7,8}$
通用:^((13[0-9])|(147)|(15[^4,\\D])|(18[0,5-9]))\\d{8}$
5、邮箱
[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}
6、银行卡
http://blog.csdn.net/lixianyue1991/article/details/44938309
正则表达式知道后,还要会用。这里我们借助谓语NSPredicate来帮我们判断一个字符串是否符合我们所写的正则表达式
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", @"你所写的正则表达式"];
BOOL isMatch = [pred evaluateWithObject:@"你所要判断的字符串"];