Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案

Home Page:http://qmuiteam.com/ios

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

去除零宽字符崩溃

happy201993 opened this issue · comments

Bug 表现
崩溃

截图
Bug 现场的界面截图,或者 Xcode 控制台的错误信息截图,有问题的代码截图
image

如何重现
运行下面的代码,崩溃
NSString *text = @"18‍22";
[text qmui_stringByReplacingPattern:@"[\u200b-\u200f\uFEFF\u202a-\u202e]" withString:@""];

预期的表现
不崩溃,并且能替换掉零宽字符

其他信息

  • 设备: 模拟器
  • iOS 版本: 所有版本
  • Xcode 版本: Xcode 15
  • QMUI 版本: [4.7.0]

QMUIStringPrivate 里对 -[NSStirng substringWithRange:] 处理 ComposedCharacterSequence 的保护,在正则表达式替换时反而是不需要的,这会导致你例子里的 replace 不符合预期,无法将“18‍22”(请直接复制)替换为“1822”,目前请先用以下文件替换你本地的同名文件,后续会修复。
QMUIStringPrivate.m.zip