前几天在用正则表达试验证密码输入时发现不能区分出中英文分号。
代码设置的字符编码是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中正则表达式的使用,主要涉及了特殊符号转义字符的处理。 ([ ] \ )三个特殊符号的处理。 验证了邮箱、手机、昵称、密码。
Octane For Cinema 4D 说明书 中英文! OC渲染器作为GPU渲染软件中的佼佼者一直被从业人员所追捧
格式化中英文之间的空格(OC).zip,Paranoid text spacing in Objective-C
MAC OC编程:利用 Object C 和 Foundation 框架,利用栈实现数值表达式的求值。(要求不使用 NSExpression)。
oc宝典 oc宝典 oc宝典 oc宝典 oc宝典 oc宝典oc宝典 oc宝典 oc宝典
主要介绍了使用正则表达式生成随机数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
OC中JSON解析,demo详细分析了JSON解析为OC中的数据对象,OC数据对象转换为JSON数据。
[Swift]1.在OC项目里的OC代码调用Swift方法,Swift代码里调用OC代码。2.在Swift项目里的Swift代码里调用OC代码,OC代码调用Swift方法。
苹果官方文档 有关programmingWithObjective-c的文档 还是官方的用来学习比较好 虽然是英文的 但是理解起来并不难
OC引导主题
千锋OC源码:目录 OC语言教程-第1讲-基本语法 OC语言教程-第2讲-点语法 OC语言教程-第3讲-内存管理1-黄金法则 OC语言教程-第4讲-内存管理2-retain点语法 OC语言教程-第5讲-内存管理3-MyArray OC语言教程-第6讲-内存...
OC中JSON或XML解析详细分析和详细demo展示,6666666666
一个简单的demo程序,实现了在oc代码中调用swift类,希望对大家有帮助
复习oc中数组排序,练习写的,用来做复习使用。
oc代码
lua与oc的交互demo,封装了一层luaBridge,开源lua库,lua调用oc的过程
OC5205 是一款连续电感电流导通模式的降压型 LED 恒流驱动器,用于驱动一个或多个 LED 灯串。OC5205 工作电压从5.5v 到 30v,提供可调的输出电流,最大输出电流可达到 1.5A。根据不同的输入电压和外部器件,OC5205 ...
这是一个oc 实现圆角的方法
OC-单例OC-单例OC-单例OC-单例OC-单例