0

这是正在发生的事情的一个示例:当在诸如 I'm 这样的单词中使用撇号时,它在发送到 javascript 函数调用时在我的字符串中不起作用。我已经读过关于在撇号前面添加反斜杠的信息,就像我一样,但这仍然不起作用。我注意到在 js 函数调用 onScan('%@') 上,撇号不能用“引号”替换,并且当括号用于传递参数时也无济于事。同样将 NSMutableString 更改为 NSString 不会更改此示例或影响此请求的答案。任何帮助表示赞赏。

    NSMutableString*messagText= @"I'm posting on stack.";

    messageText = [[messageText stringByReplacingOccurrencesOfString:@"'"
                                                        withString:@"\'"]
                                                        mutableCopy];

    NSString *javascriptString = [NSString stringWithFormat:@"onScan('%@')", messageText];

    [webView stringByEvaluatingJavaScriptFromString:javascriptString];
4

1 回答 1

0

要转义单引号,您需要双反斜杠试试这个:

NSString *messagText= @"I'm posting on stack.";
if ([messagText containsString:@"'"]) {
        messagText = [NSString stringWithFormat:@"onScan('%@')",[messagText stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"]];
}
[webView stringByEvaluatingJavaScriptFromString: messagText];
于 2017-03-21T18:19:05.403 回答