在文本字段中,当用户输入带有转义字符的值时,我想像用户输入一样工作,但它的行为就像\ e的字符串一样。
更详细。 假设用户输入了\ e [3~但是当我在控制台中打印它时会显示\ e [3~。实际上这应该打印像¿[3~所以它对我来说是完美的。
我已尝试过这一行并且有效。
NSString * str=[textField.text stringByReplacingOccurrencesOfString:@"\\e" withString:@"\e"];
但是假设用户输入的值如\ E [3~那么它不会被替换。所以我试过像
NSString * str=[textField.text stringByReplacingOccurrencesOfString:@"\\e" withString:@"\e"];
str=[textField.text stringByReplacingOccurrencesOfString:@"\\E" withString:@"\E"];
但是当用户在小文件中输入文字时,这不起作用[3~。有了这个,第一行将执行替换\ e它会给我完美的结果,如¿[3~但是当它执行下一行它会给我相同的\ e [3~string。
请建议我如何检查这两个字母,以及我是否可以一次检查所有转义字符。
答案 0 :(得分:1)
代码中的错误是第二行带有原始字符串textField.text
而不是第一行的结果。你的意思是:
NSString *str = [textField.text stringByReplacingOccurrencesOfString:@"\\e" withString:@"\e"];
str = [str stringByReplacingOccurrencesOfString:@"\\E" withString:@"\E"];
或者,您可以使用以下步骤一步完成替换
NSCaseInsensitiveSearch
选项:
NSString *str = [textField.text stringByReplacingOccurrencesOfString:@"\\e"
withString:@"\e"
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, [textField.text length])];