【问题标题】:Copying a number from native contacts gives weird results从本地联系人复制号码会产生奇怪的结果
【发布时间】:2018-05-07 12:51:40
【问题描述】:

我从本地通讯录中复制了一个号码,它的开头和结尾可能有 UTF-8 字符

NSString *phoneNumber = @"‭+488778689898‬";
NSLog(@"phonenumber.length --> %lu", (unsigned long)phoneNumber.length); //Prints 15
BOOL hasPlusPrefix = [phoneNumber hasPrefix:@"+"];
NSLog(@"hasPrefix -->%d", hasPlusPrefix); // Prints 0

当我使用调试器调试数字时,它显示

如何从我的 NSString 中删除前面和末尾的字符?

谢谢

【问题讨论】:

  • 可能的副本:stackoverflow.com/questions/4663438/… 尝试从字符串中删除字母并仅保存数字:stackoverflow.com/a/27306065/1278744
  • 我不明白这个如何从我的 NSString 中删除前面和末尾的字符。?
  • 到目前为止,您尝试了哪些方法来删除这些字符?
  • 我尝试通过 phoneNumber = [phoneNumber stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] 删除附加字符;

标签: ios objective-c xcode nsstring


【解决方案1】:

您在字符串中看到的代码用于处理文本方向。 \U202d 是“从左到右覆盖”字符,\U202c 是“POP DIRECTIONAL FORMATTING”字符。

您不能使用 whitespaceAndNewlineCharacterSet 删除它们,因为它们不是空格。但它们是控制代码,可以使用controlCharacterSet 删除。

phoneNumber = [phoneNumber stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多