Skip to content

#import "NSString+LJExtension.h" ->  #19

@hug2008

Description

@hug2008
  • (NSString )lj_filterSpecialString:(NSString )string
    {
    // 这个语句对显示为 +86 138
    *********** 格式的不起作用的
    // 因为 +86 后面跟的空白根本不是空格
    string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
    ...........................
    return string;
    }

改进建议,使用数字搜索:

  • (NSString *)lj_filterSpecialString:(NSString *)string
    {
    NSString *cnPhoneOrig = [string copy];
    if (0 == cnPhoneOrig.length)
    {
    return @"";
    }

    NSScanner *aScaner = [NSScanner scannerWithString:cnPhoneOrig];

    NSCharacterSet *aSetNumbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];

    NSString *cnPhone = @"";

    NSString *aNumber = nil;
    NSString *aOther = nil;

    while (![aScaner isAtEnd])
    {
    [aScaner scanUpToCharactersFromSet:aSetNumbers intoString:&aOther];

      [aScaner scanCharactersFromSet:aSetNumbers intoString:&aNumber];
      
      cnPhone = [cnPhone stringByAppendingString:aNumber];
    

    }

    if ([cnPhone hasPrefix:@"86"])
    {
    cnPhone = [cnPhone substringFromIndex:2];
    }

    if ([cnPhone hasPrefix:@"086"])
    {
    cnPhone = [cnPhone substringFromIndex:3];
    }

    return cnPhone;
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions