Nikunj Jadav
Nikunj Jadav

Reputation: 3402

Remove Non-English Characters from NSString (Obj-C)

I have NSString like

Aavkar Complex, Opposite Gurukul, Drive-in Road, Ahmedabad, àªà«àªàª°àª¾àª¤, India

so I want to consider only english characters and without english characters are from above string so please give me any idea.

Thanks in advance.

Upvotes: 1

Views: 637

Answers (3)

Gypsa
Gypsa

Reputation: 11314

try this:-

NSString *emailRegEx = @"[A-Za-z]";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
    //Valid email address
    NSString *textString=@"gagdaksdhaksdhaskdhasldhasldalasàªà«àªàª°àª¾àª¤dhwheqweuqweuqwe";
    NSString *textFinalString=@"";
    for (int i=0; i<[textString length]; i++) {
        NSString *text2string=[textString substringWithRange:NSMakeRange(i,1)];
        NSLog(@"%@",text2string);
        if ([emailTest evaluateWithObject:text2string] == YES) 
        {
            NSLog(@"yesenglishCharacter");
            textFinalString=[textFinalString stringByAppendingString:text2string];

        }
        else {
            NSLog(@"noenglishCharacter");
        }


    }
    NSLog(@"textFinalString%@",textFinalString);

Upvotes: 1

d.lebedev
d.lebedev

Reputation: 2303

Here is a little dirty example:

NSString *test = @"Olé, señor!";

NSMutableString *asciiCharacters = [NSMutableString string];
for (NSInteger i = 32; i < 127; i++)  {
    [asciiCharacters appendFormat:@"%c", i];
}

NSCharacterSet *nonAsciiCharacterSet = [[NSCharacterSet characterSetWithCharactersInString:asciiCharacters] invertedSet];

test = [[test componentsSeparatedByCharactersInSet:nonAsciiCharacterSet] componentsJoinedByString:@""];

NSLog(@"%@", test); // Prints @"Ol, seor!"

Upvotes: 4

msgambel
msgambel

Reputation: 7340

Here is some sample code using NSRange's to do this for a textfield, although the code should be easily adaptable to use for an array of NSString's. Hope that Helps!

Upvotes: 0

Related Questions