ios 删除大段落中的斜线

kuuvgm7e  于 2022-12-15  发布在  iOS
关注(0)|答案(4)|浏览(163)

在iOS应用程序中,我通过JSON将数据发送到iPhone设备。我的段落是包含多个换行符的大文本。类似于stripslashes,如何在iOS Objective-C中删除斜杠?

6rvt4ljy

6rvt4ljy1#

不,您必须手动操作。例如:

NSString *str = @"Test string with some \' and some \" \'\"";
str = [str stringByReplacingOccurrencesOfString:@"\'" withString:@"'"];
str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
NSLog(@"%@", str);
rlcwz9us

rlcwz9us2#

要删除O\'Reilly中的简单\,请用途:

string = [string stringByReplacingOccurrencesOfString:@"\\" withString:@""];
vwoqyblh

vwoqyblh3#

常规带斜线(控制字符除外)

如果作用域取消了所有反斜杠字符的引号,比如stripslashes PHP function ,而没有magic_quotes_sybase,那么将使用正则表达式替换,除了NUL(\0)这样的控制字符:

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

反向添加斜杠

如果作用域被限制为反转addslashes PHP函数,那么只需要取消转义/取消引用4个字符:NUL、双引号、单引号和反斜杠。

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

取消引用JSON

对于JSON内容,根本不应该使用addslashesstripslasheshttps://json.org/中描述了JSON的转义规则:

例如,stripslashes将不支持\u + *4个十六进制数字 *。
因此,如果作用域是不带引号的JSON格式(不像stripslashes),则使用JSON解析器:

NSString *str = @"\\\" \\\\ \\u26C4";
str = [NSJSONSerialization JSONObjectWithData:[[NSString stringWithFormat:@"\"%@\"", str] dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
u3r8eeie

u3r8eeie4#

请试试这个

NSString *valorTextField = [[NSString alloc] initWithFormat:@"Hello \ world"];
  NSString *replaced = [valorTextField stringByReplacingOccurrencesOfString:@"\" withString:@""];
 NSLog(@"%@", replaced);

相关问题