определенное средство форматирования номеров к номеру телефона - PullRequest
1 голос
/ 08 сентября 2011

Я хочу отобразить номер в следующем формате

и формат "123-456-7890"

Я использую

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
[formatter setPositiveFormat:@"###-###-####"];
[formatter setLenient:YES];

amountField.text =[formatter stringFromNumber:[NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]]];
NSLog(@"%@",amountField.text);

IЯ использую приведенный выше код, чтобы сделать это, но код не отражает ..... и результат отображается как 1234567890, может только тело может помочь, как это сделать.

Ответы [ 4 ]

3 голосов
/ 08 сентября 2011

Используйте этот форматер:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    //[formatter setNumberStyle:NSNumberFormatterNoStyle];
    //[formatter setPositiveFormat:@"###-###-####"]; 
    [formatter setGroupingSeparator:@"-"];
    [formatter setGroupingSize:4];
    [formatter setUsesGroupingSeparator:YES];
       [formatter setSecondaryGroupingSize:3];
    //[formatter setLenient:YES];
    NSString *num = @"1234567890";
    NSString *str = [formatter stringFromNumber:[NSNumber numberWithInt:[num intValue]]];
    NSLog(@"%@",str); 
1 голос
/ 08 сентября 2011

в этом коде отметьте

tempStr = [NSString stringWithFormat:@"1(%@)%@-%@", areaCode, phone1, phone2];

в

tempStr = [NSString stringWithFormat:@"%@-%@-%@", areaCode, phone1, phone2]

в PhoneNumberFormatter.m

0 голосов
/ 11 марта 2019

Swift:

let numberFormatter = NumberFormatter()
numberFormatter.groupingSeparator = "-"
numberFormatter.groupingSize = 4
numberFormatter.usesGroupingSeparator = true
numberFormatter.secondaryGroupingSize = 3
let number = "1234567890"
let formattedNumber = numberFormatter.string(from: NSNumber(value: Int(number)!))
print(formattedNumber as Any)
0 голосов
/ 08 сентября 2011

setPositiveFormat считает разделители '-' знаками минус.

Примечание: см. Шаблоны числового формата

Обходной путь - указать разделители ',' и заменить их:

NSNumber *phoneNumber = [NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]];
NSString *text =[formatter stringFromNumber:phoneNumber];
amountField.text = [text stringByReplacingOccurrencesOfString:@"," withString:@"-"];
...