前几天在用正则表达试验证密码输入时发现不能区分出中英文分号。
代码设置的字符编码是UTF-8
代码:
NSString* regex = @"^[;]{0,6}$"; // 其中分号为英文分号,长度是随意写的个控制;
NSPredicate* pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isMatch;// 正则表达试验证返回值,YES 为通过, NO 为不通过;
isMatch = [pred evaluateWithObject: @";"]; // 英文分号,返回结果 YES 是通过
isMatch = [pred evaluateWithObject: @";"]; // 中文分号,返回结果 YES 也是通过
于是这样写:
isMatch = [pred evaluateWithObject:[[NSString alloc] initWithFormat:@"%s", [@";" cStringUsingEncoding:NSUTF8StringEncoding]]]; // 英文分号,返回结果 YES 是通过
isMatch = [pred evaluateWithObject:[[NSString alloc] initWithFormat:@"%s", [@";" cStringUsingEncoding:NSUTF8StringEncoding]]]; // 中文分号,返回结果 NO 不通过;
这样写就可以正正确验证了。原因我也不明,如果是编码问题,中英文 句号 用第一种写却能分开。
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_space@126.com
qq : 1035862795
敲门砖: 代码谱写人生
分享到:
相关推荐
"格式化中英文之间的空格(OC).zip" 涉及到的是一个开源项目,专门解决在Objective-C代码中如何正确处理中文与英文字符间多余空格的问题。项目名为 "pangu.objective-c-master",我们可以推测这是一个基于潘格...
中英文说明书提供了全面的指南,帮助用户从基础到高级逐步掌握Octane的使用,无论您是初学者还是经验丰富的专业人士,都能从中受益。 通过深入学习和实践,用户可以充分利用Octane for Cinema 4D的强大功能,创造...
在本主题中,我们将探讨如何使用栈数据结构(Stack)来实现一个简单的数学表达式求值器,而不依赖于Apple的`NSExpression`类。栈是一种后进先出(LIFO,Last In First Out)的数据结构,非常适合处理需要回溯的操作...
- [a-zA-Z甲乙]:匹配指定的字符区间,其中的“甲乙”表示自定义字符集,不过不支持正则表达式中的^(取反)语法。 - 重复打印语法:比如?匹配0个或1个字符,*匹配0个以上字符,+匹配1个以上字符,{n}生成n个字符,{...
在iOS开发中,Objective-C(OC)与JavaScript(JS)之间的交互是常见需求,尤其是在混合式移动应用开发中。这个示例项目提供了OC调用JS和JS调用OC的实现方式,帮助开发者更好地理解如何在两者之间进行通信。以下是...
在IT领域,特别是苹果电脑的自定义化设置中,"OC引导主题"是一个热门话题。OC,全称为OpenCore,是苹果操作系统(macOS)的一种启动加载器,它替代了原来的 Clover 引导加载器,提供了更为灵活和高级的配置选项。OC ...
在多线程环境中,`nonatomic`属性可能在任何时候被多个线程同时访问或修改,因此在设计类时需要额外小心,以避免数据竞争和不一致的问题。 ### 总结 理解`@property`修饰符对于有效地使用Objective-C至关重要。...
OC渲染器中文教程-图钉渲染制作案例教程Octane Render for C4D,OC节点材质讲解
在iOS开发中,Objective-C(简称OC)是主要的编程语言之一。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于应用程序之间的数据传输。本篇将深入探讨OC中如何进行JSON的解析与转换,以帮助...
- 例如,如果OC7M中的第n位置为1,并且OC7D中的第n位置为0,则当OC7进行成功比较时,OCn输出比较引脚将变为低电平。 #### 示例说明 假设TIOS寄存器被设置为0xFF,表示所有的输出比较通道都被设置为输出比较模式。...
如果需要卸载服务,则运行 `OC4JDaemonUNINST.BAT`。 **端口配置**:如果默认端口 8888 有冲突,可以在 `http-web-site.xml` 文件中修改端口号。此文件位于 `D:\oc4j\j2ee\home\config\`。 ##### 3. 发布 ...
"OC Extension UTF8(日志UTF8内容转换成中文)"这个工具类就是为了方便开发者解决这个问题,它能够帮助我们将UTF8编码的日志内容自动转换为中文显示。 Objective-C(简称OC)是苹果iOS和macOS开发的主要编程语言。在...
在iOS开发中,Objective-C(OC)和Lua的交互是一个常见的需求,特别是在游戏开发中,因为Lua具有轻量级、脚本化的特性,适合用于处理游戏逻辑和动态内容。本Demo提供了一种不依赖第三方库的OC与Lua交互方式,通过...
在Objective-C(简称OC)编程中,NSString是一个非常重要的类,它用于表示不可变的文本字符串。这个类提供了丰富的操作字符串的方法,使得开发者能够高效地处理文本数据。在这个"oc字符串方法代码展示"文档中,我们...
在Objective-C(简称OC)中,数组是一种常用的数据结构,用于存储多个同类型的元素。数组排序是编程中常见的操作,特别是在处理数据时。本篇将深入探讨OC中数组的排序方法,以及如何通过实践来复习这个重要概念。 ...
在iOS开发中,Objective-C(简称OC)是主要的编程语言之一。对于数据交换和存储,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种常见的格式。本篇将深入探讨OC中如何对JSON和XML进行...
在iOS应用开发中,Objective-C(OC)是常用的语言之一,而Storyboard是Xcode提供的一种图形化界面设计工具,用于构建应用的用户界面。在这个"用OC storyboard写的计算器"项目中,开发者通过Storyboard来设计计算器的...
分类可以在不修改原有类源码的情况下为其添加方法,而扩展则可以为私有方法和属性提供一个隐藏的接口。这些都是OC中非常实用的特性。 总的来说,"OC初识总代码"的学习涵盖了面向对象编程的基本概念,包括类、对象、...
在Objective-C(简称OC)编程语言中,内存管理是一个至关重要的概念,因为它直接影响到程序的稳定性和性能。OC主要采用了两种内存管理策略:手动引用计数(MRC)和自动引用计数(ARC)。这两种机制都是为了确保在...