iOS简单验证中文名的有效性

2024-08-23 22:38

本文主要是介绍iOS简单验证中文名的有效性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

验证中文名的有效性

概述

验证中文姓名的有效性。

验证规则:

这里代码中中文名汉字字数小于两个汉字即为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
}

这里写图片描述

这篇关于iOS简单验证中文名的有效性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100691

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::