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

相关文章

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

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

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica