代码之家  ›  专栏  ›  技术社区  ›  pheelicks

在iPhone上转义Objective C中的字符

  •  3
  • pheelicks  · 技术社区  · 14 年前

    我正在尝试传递以下字符串:

    NSString* jsString = [NSString stringWithFormat:@"myFunc(\"%@\");", myParameter];
    

    parameter");alert('scam');
    

    myParameter字符串将是通讯簿中联系人的姓名,因此完全可以输入上述字符串。

    2 回复  |  直到 14 年前
        1
  •  2
  •   kennytm    14 年前

    你可以更换每一个 " 具有 \"

    NSString* filteredParam = [myParameter stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"];
    NSString* filteredParam = [filteredParam stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
    
        2
  •  0
  •   Brian Chapados    14 年前

    根据您的使用要求,您可以使用“模板”方法:

    #define JSTemplateCodeKey @"##JS_CODE_HERE##"
    
    // define template (or read it from file, ect...)
    NSString *jsTemplate = @"myFunc(\"" JSTemplateCodeKey "\");";
    
    // replace the placeholder in your template with your param
    NSString *jsString = [jsTemplate stringByReplacingOccurrencesOfString:JSTemplateCodeKey withString:myParameter];