在iOS应用程序中,我通过JSON将数据发送到iPhone设备。我的段落是包含多个换行符的大文本。类似于stripslashes,如何在iOS Objective-C中删除斜杠?
6rvt4ljy1#
不,您必须手动操作。例如:
NSString *str = @"Test string with some \' and some \" \'\""; str = [str stringByReplacingOccurrencesOfString:@"\'" withString:@"'"]; str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""]; NSLog(@"%@", str);
rlcwz9us2#
要删除O\'Reilly中的简单\,请用途:
O\'Reilly
\
string = [string stringByReplacingOccurrencesOfString:@"\\" withString:@""];
vwoqyblh3#
如果作用域取消了所有反斜杠字符的引号,比如stripslashes PHP function ,而没有magic_quotes_sybase,那么将使用正则表达式替换,除了NUL(\0)这样的控制字符:
stripslashes
\0
NSString *str = @"\\\\ \\' \\\" \\r\\s\\t\\u"; str = [str stringByReplacingOccurrencesOfString:@"\\\\(.)" withString:@"$1" options:NSRegularExpressionSearch range:NSMakeRange(0, str.length)];
如果作用域被限制为反转addslashes PHP函数,那么只需要取消转义/取消引用4个字符:NUL、双引号、单引号和反斜杠。
addslashes
NSString *str = @"\\\\ \\' \\\" \\\0"; str = [str stringByReplacingOccurrencesOfString:@"\\\0" withString:@"\0"]; str = [str stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""]; str = [str stringByReplacingOccurrencesOfString:@"\\\'" withString:@"\'"]; str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
对于JSON内容,根本不应该使用addslashes或stripslashes。https://json.org/中描述了JSON的转义规则:
例如,stripslashes将不支持\u + *4个十六进制数字 *。因此,如果作用域是不带引号的JSON格式(不像stripslashes),则使用JSON解析器:
\u
NSString *str = @"\\\" \\\\ \\u26C4"; str = [NSJSONSerialization JSONObjectWithData:[[NSString stringWithFormat:@"\"%@\"", str] dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
u3r8eeie4#
请试试这个
NSString *valorTextField = [[NSString alloc] initWithFormat:@"Hello \ world"]; NSString *replaced = [valorTextField stringByReplacingOccurrencesOfString:@"\" withString:@""]; NSLog(@"%@", replaced);
4条答案
按热度按时间6rvt4ljy1#
不,您必须手动操作。例如:
rlcwz9us2#
要删除
O\'Reilly
中的简单\
,请用途:vwoqyblh3#
常规带斜线(控制字符除外)
如果作用域取消了所有反斜杠字符的引号,比如
stripslashes
PHP function ,而没有magic_quotes_sybase,那么将使用正则表达式替换,除了NUL(\0
)这样的控制字符:反向添加斜杠
如果作用域被限制为反转
addslashes
PHP函数,那么只需要取消转义/取消引用4个字符:NUL、双引号、单引号和反斜杠。取消引用JSON
对于JSON内容,根本不应该使用
addslashes
或stripslashes
。https://json.org/中描述了JSON的转义规则:例如,
stripslashes
将不支持\u
+ *4个十六进制数字 *。因此,如果作用域是不带引号的JSON格式(不像
stripslashes
),则使用JSON解析器:u3r8eeie4#
请试试这个