从附加到电子邮件的文件名 PDF 的 NSString 中删除一些特殊字符



我正在使用MFMailComposeViewController处理电子邮件中的附件,pdf的文件名基于用户输入的事件名称,因此这可能是约翰婚礼或约翰的婚礼。

我想从文件名中删除任何特殊字符。

在我的代码中,我已经这样做了:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"'#%^&{}[]~|/?.<," options:0 error:NULL];
NSString *string = self.occasion.title;
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
NSString *fileName = [NSString stringWithFormat:@"(%@).pdf", modifiedString];

有了这个,如果它是约翰的婚礼,它会从我的文件名中删除撇号,但如果里面有哈希或任何其他符号,它不会删除文件名中的撇号。

我在网上看过一些堆栈溢出示例,但它们看起来都非常复杂;我确切地知道要从文件名中删除哪些符号。

任何指导将不胜感激。

NSString *textString = @"abcd334%$^%^%80)(*^ujikl";
//this is for remove the specified characters
NSCharacterSet *chs = [NSCharacterSet characterSetWithCharactersInString:@"'#%^&{}[]/~|?.<,"];
NSString *resultString = [[textString componentsSeparatedByCharactersInSet:chs] componentsJoinedByString:@""];
//this is for get the specified characters
NSCharacterSet *chs1 = [[NSCharacterSet characterSetWithCharactersInString:@"'#%^&{}[]/~|?.<,"] invertedSet];
NSString *resultString1 = [[textString componentsSeparatedByCharactersInSet:chs1] componentsJoinedByString:@""];
NSLog(@"tex : %@",resultString);
NSLog(@"reverse string : %@",resultString1);

输出:

文本 : ABCD334$80)(*ujikl

反向字符串:%^%^%^

最新更新