iOS简单验证中文名的有效性
来源:互联网 发布:kafka java获取offset 编辑:程序博客网 时间:2024/05/22 04:38
验证中文名的有效性
概述
验证中文姓名的有效性。
验证规则:
这里代码中中文名汉字字数小于两个汉字即为false
;姓名长度有所区别,正常长度最长设置为<=8个汉字,如果是中间带{•|·}的名字,则限制长度为<=15个汉字;
如果使用过程中遇到更长的,则自行修改该限制,或者联系笔者也可以。
通过正则表达式来判断。附:正则表达式30分钟入门教程。
下文中用到的正则表达式字符串为:
- 正常中文名
"^[\u4e00-\u9fa5]+$"
- 带点{•|·}的中文名
"^[\u4e00-\u9fa5]+[·•][\u4e00-\u9fa5]+$"
该正则只能简单的判断身份证号码的有效性,笔者对正则表达式也是了解比较浅。
如果有好的建议,希望及时联系我,万分感谢【抱拳】。
Code
源码下载地址,源码中包含各种字符串(手机号、邮箱、中文名、身份证号等)校验方法
+ (BOOL) checkEmptyString:(NSString *) string { if (string == nil) return string == nil; NSString *newStr = [string stringByReplacingOccurrencesOfString:@" " withString:@""]; return [newStr isEqualToString:@""];}
/** 判断是否是有效的中文名 @param realName 名字 @return 如果是在如下规则下符合的中文名则返回`YES`,否则返回`NO` 限制规则: 1. 首先是名字要大于2个汉字,小于8个汉字 2. 如果是中间带`{•|·}`的名字,则限制长度15位(新疆人的名字有15位左右的,之前公司实名认证就遇到过),如果有更长的,请自行修改长度限制 3. 如果是不带小点的正常名字,限制长度为8位,若果觉得不适,请自行修改位数限制 *PS: `•`或`·`具体是那个点具体处理需要注意* */+ (BOOL)isVaildRealName:(NSString *)realName{ if ([MMCheckTool checkEmptyString:realName]) return NO; NSRange range1 = [realName rangeOfString:@"·"]; NSRange range2 = [realName rangeOfString:@"•"]; if(range1.location != NSNotFound || // 中文 · range2.location != NSNotFound ) // 英文 • { //一般中间带 `•`的名字长度不会超过15位,如果有那就设高一点 if ([realName length] < 2 || [realName length] > 15) { return NO; } NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[\u4e00-\u9fa5]+[·•][\u4e00-\u9fa5]+$" options:0 error:NULL]; NSTextCheckingResult *match = [regex firstMatchInString:realName options:0 range:NSMakeRange(0, [realName length])]; NSUInteger count = [match numberOfRanges]; return count == 1; } else { //一般正常的名字长度不会少于2位并且不超过8位,如果有那就设高一点 if ([realName length] < 2 || [realName length] > 8) { return NO; } NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[\u4e00-\u9fa5]+$" options:0 error:NULL]; NSTextCheckingResult *match = [regex firstMatchInString:realName options:0 range:NSMakeRange(0, [realName length])]; NSUInteger count = [match numberOfRanges]; return count == 1; }}
Test
//中文名{ BOOL a = [MMCheckTool isVaildRealName:@"乔布斯"]; BOOL b = [MMCheckTool isVaildRealName:@"尼古拉斯•乔布斯"]; BOOL c = [MMCheckTool isVaildRealName:@"乔"]; BOOL d = [MMCheckTool isVaildRealName:@"哈哈哈•付加工费是否健康按时购房款及安防爱国卡萨"]; BOOL e = [MMCheckTool isVaildRealName:@"21345678"]; BOOL f = [MMCheckTool isVaildRealName:@"abcdefg"]; BOOL g = [MMCheckTool isVaildRealName:@"-=+_*@%#"]; BOOL h = [MMCheckTool isVaildRealName:@""]; BOOL i = [MMCheckTool isVaildRealName:nil]; NSLog(@"中文名=====》%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i); //打印结果为 110000000}
0 0
- iOS简单验证中文名的有效性
- iOS验证手机号的有效性
- iOS验证邮箱的有效性
- 数字证书的有效性验证
- 数字证书的有效性验证
- 验证身份证的有效性
- 验证邮箱的有效性
- iOS实现数字,字母或符号组合的有效性验证
- iOS验证身份证号的有效性(仅18位号)
- 验证证书的有效性(cryptoapi)
- VC++验证EMAIL的有效性
- 验证索引有效性的方法
- 验证IP地址的有效性
- pb 的数据有效性验证
- 验证url地址的有效性
- RMAN 验证 备份 的有效性
- Openssl验证证书的有效性
- Excel2013的数据有效性验证
- java web 面试一般 问题总结
- 文章标题
- 定位IO瓶颈的一些方法(iotop工具具体查看IO负载主要是落在哪个进程上)
- red5流媒体服务器
- java排序算法(4)—冒泡排序
- iOS简单验证中文名的有效性
- InfluxDB学习之InfluxDB的安装和简介
- spring注解事务及事务回滚失败的原因
- Java Exception之多个catch
- SEAndroid 浅谈
- PHP 5.6 的Curl POST
- Bootstrap徽章
- 交,差,并集,加减法
- java动态编译,反射加载类