0

在 iphone app 中,我通过 JSON 将数据发送到 Iphone 设备。我的段落是包含多个换行符的大文本。如何在 iphone 目标 c 中删除斜线?

4

4 回答 4

0

不,您必须手动完成。例如:

NSString *str = @"Test string with some \' and some \" \'\"";
str = [str stringByReplacingOccurrencesOfString:@"\'" withString:@"'"];
str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
NSLog(@"%@", str);
于 2012-09-06T12:16:36.657 回答
0

要删除简单\的喜欢O\'Reilly使用:

string = [string stringByReplacingOccurrencesOfString:@"\\" withString:@""];
于 2013-09-29T14:58:25.627 回答
0

一般的带斜杠(控制字符除外)

如果范围是取消引用所有反斜杠引用的字符,例如没有 magic_quotes_sybasestripslashes的PHP 函数,那么除了 NUL ( ) 之类的控制字符之外,将进行正则表达式替换:\0

NSString *str = @"\\\\ \\' \\\" \\r\\s\\t\\u";
str = [str stringByReplacingOccurrencesOfString:@"\\\\(.)" withString:@"$1" options:NSRegularExpressionSearch range:NSMakeRange(0, str.length)];

反向加斜杠

如果范围仅限于反转addslashesPHP 函数,则只需 4 个字符不转义/不加引号:NUL、双引号、单引号和反斜杠。

NSString *str = @"\\\\ \\' \\\" \\\0";
str = [str stringByReplacingOccurrencesOfString:@"\\\0" withString:@"\0"];
str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
str = [str stringByReplacingOccurrencesOfString:@"\\\'" withString:@"\'"];
str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];

取消引用 JSON

您根本不应该使用addslashesstripslashes用于 JSON 内容。JSON 的转义规则在https://json.org/中描述: 在此处输入图像描述

例如,stripslashes将不支持\u+ 4 hexadecimal digits

因此,如果范围是不引用 JSON 格式(不stripslashes类似),则使用 JSON 解析器:

NSString *str = @"\\\" \\\\ \\u26C4";
str = [NSJSONSerialization JSONObjectWithData:[[NSString stringWithFormat:@"\"%@\"", str] dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
于 2017-11-19T02:46:05.393 回答
-1

请试试这个

  NSString *valorTextField = [[NSString alloc] initWithFormat:@"Hello \ world"];
  NSString *replaced = [valorTextField stringByReplacingOccurrencesOfString:@"\" withString:@""];
 NSLog(@"%@", replaced);
于 2016-05-06T06:12:33.727 回答