【发布时间】:2017-11-18 01:21:28
【问题描述】:
我有一个可以接受任何输入的文本视图,我需要将引号和双引号分别解析为' 和"。所以如果我在我的文本视图中输入一个文本,比如“Just testin'g quotes”,输出应该是"Just testin'g quotes" 下面是我的解析代码,到目前为止它工作正常。
-(NSString *)parseQuotes:(NSMutableString *)str {
[str replaceOccurrencesOfString:@"\"" withString:@""" options:0 range:NSMakeRange(0, [str length])];
[str replaceOccurrencesOfString:@"'" withString:@"'" options:0 range:NSMakeRange(0, [str length])];
return str;
}
所以,现在我的问题是,如果我要复制粘贴如下文本
“只是测试报价”
“只是测试引号”
它给了我这样的输出
“Just testin’g quotes”
"Just testin'g quotes"
请注意第一个没有解析,因为它具有不同格式的引号和双引号。因此,为此我需要使用这些新引号复制相同的代码,例如
[str replaceOccurrencesOfString:@"“" withString:@""" options:0 range:NSMakeRange(0, [str length])];
[str replaceOccurrencesOfString:@"”" withString:@""" options:0 range:NSMakeRange(0, [str length])];
[str replaceOccurrencesOfString:@"’" withString:@"'" options:0 range:NSMakeRange(0, [str length])];
这可行,但我需要知道这是否是正确的继续方式?是否有可能出现不同类型的引用并破坏此代码?是否有更好的替代解决方案适用于所有类型的报价?
【问题讨论】:
-
您需要用
"之类的东西替换引号,这可能是因为某些要求。不同的要求会给您需要替换的不同引号集(您不会替换所有可能的 UTF 字符表中的所有类型的引号,对吧?)。您的案例有什么要求? -
@AndrewTomenko,基本上用户可以在文本视图中键入或粘贴任何类型的内容。所以,我需要处理他们可以粘贴的任何类型的报价。
-
@Gamerlegend 用户可以粘贴非常广泛的可能称为引号的字符。但从开发的角度来看,一般不需要全部处理。例如,如果您要将用户输入存储在 xml 中并且需要转义引号 - 您只需要转义其中一个版本,它是
"字符。
标签: objective-c parsing ios9 double-quotes xcode8