oc 中正则表达式不区分中英文分号的问题
前几天在用正则表达试验证密码输入时发现不能区分出中英文分号。
代码设置的字符编码是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 中正则表达式不区分中英文分号的问题相关推荐
- SQLServer中区分中英文标点符号
SQLServer中区分中英文标点符号 问题出现背景 解决方法 方法一:修改表结构 方法二:自定义排序规则(COLLATE) COLLATE使用简述 问题出现背景 最近在一个SQLServer的存储过 ...
- 区分中英文字符的两种方法: 正则和charCodeAt()方法
最近在为项目写登录注册系列页面, 表单验证无疑是不可缺少的部分, 在这个jQ插件满天飞的web年代, 表单验证倒也不是难事. 但再好的插件, 也并不能做到十全十美, 比如这次用到的我先前介绍过的Van ...
- OC中Runtime浅析
近期了解了一下OC的Runtime,真的是OC中非常强大的一个机制,看起来比較底层,但事实上能够有非常多活用的方式. 什么是Runtime 我们尽管是用Objective-C写的代码,事实上在运行过程 ...
- JS区分中英文字符的两种方法
JS区分中英文字符的两种方法: 正则和charCodeAt()方法. 正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. ...
- OC中栈区与堆区的内存概念解析
栈区是先进后出,队列是先进先出. 栈区就相当于玻璃杯,往玻璃杯里放奥利奥,第一块放入的奥利奥,肯定是最后一个拿出来. 队列就相当于掉了底的玻璃杯,最先放入的,必定最先掉出来. 网上有个更绝的比喻:队列 ...
- JS 区分中英文字符/获取字符串实际长度(区分中英文)
获取字符串中全部中文字符 ^x00-x80 是全角字符的范围(注意这里有个非),通过正则来获取字符串中的全角字符. // 获取全部中文字符(字符串) ,返回中文字符组成的数组 function get ...
- jQuery截取字符串插件区分中英文:
截取字符串功能在大量网站都有应用,比如新闻列表这样的功能,因为新闻的标题长途未必都是恰如其分的,所以要根据需要截取指定长度的字符串,下面就分享一个jQuery实现的插件,此插件能够截取指定长度的字符串 ...
- 浅谈OC中Block的本质
Block简介 block是将函数及其执行上下文封装起来的一个对象 在block实现的内部,有很多变量,因为block也是一个对象 其中包含了诸如isa指针,imp指针等对象变量,还有储存其截获变量的 ...
- iOS开发中正则表达式的基础使用
正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...
- [绍棠] iOS开发中正则表达式的基础使用
正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...
最新文章
- Oracle 函数中动态执行语句
- php调用txt接口,PHP 如何更优雅地调用 API 接口
- FreeRTOS之列表和列表项
- 高三!忏悔ing~(在这儿的第一篇随笔)
- 6. PHP 正则表达式
- 网络运维系列:Ubnt ER-X初始化和开启硬件NAT
- 【Vue脚手架安装教程】
- Linux如何查看端口
- Eclipse中导入项目前有红叉提示但是项目内容不报错解决办法
- MATLAB打不开,只在任务栏闪一下就无反应了怎么办?
- 【HNOI2017】大佬-dalao
- mysql大括号的意思_正则(括号)、[中括号]、{大括号}的区别
- 学习四旋翼(三):DMP姿态解算和串级PID控制姿态
- 智能机器人用什么语言编程
- 1G2G3G4G5G:一部波澜壮阔的移动通信史
- ubuntu设置pac代理
- 位图+布隆过滤器-待续
- MySQL在linux上(cmake)的source code安装方法
- Openwrt手动释放内存
- 云服务器被植入挖矿木马,CPU飙升200%
热门文章
- Hibernate中evict方法和clear方法说明
- 龙芯3A3000笔记本玩机笔记
- 51单片机显示时间日期
- 鸿蒙哦叟,苕木匠时评:说鸿蒙“
- 当我们电脑上的Microsoft Office2003/2007/2010无法卸载时怎么处理?
- 【概率】由已有的随机生成器构造出新的随机生成器
- Kettle (1) - 读取 CSV 文件
- 关于数据迁移:解决kettle中mysql的数据是tinyint的kettle查出来后变成boolean问题
- 河南省第八届ACM程序设计竞赛(未完再续)
- linux link 硬链接,Linux系统中的硬链接(hard link)与软链接(symbolic link)