numery telefonów mogą zawierać gwiazdki i znaki numeryczne (*
i #
) i może zacząć z +
. na ITU-T E-123 Recommandation zaleca +
symbol jest używany do wskazania, że liczba jest liczbą międzynarodowej, a także służyć jako przypomnienie, że międzynarodowy kolejność wybierania danego kraju musi być stosowany zamiast niego.
Spaces , łączniki i nawiasy nie mogą być wybierane, więc nie mają żadnego znaczenia w numerze telefonu aby usunąć wszystkie niepotrzebne symbole, należy usunąć wszystkie znaki nie w zestawie znaków dziesiętnych, z wyjątkiem *
i #
, a także wszelkich +
nie znaleziono na początku numeru telefonu.
Według mojej wiedzy nie ma znormalizowanego ani zalecanego sposobu reprezentowania rozszerzeń ręcznych (niektóre używają x
, niektóre używają ext
, niektóre używają E
). Chociaż od dłuższego czasu nie spotkałem się z ręcznym rozszerzeniem.
NSUInteger inLength, outLength, i;
NSString *formatted = @"(123) 555-5555";
inLength = [formatted length];
unichar result[inLength];
for (i = 0, outLength = 0; i < inLength; i++)
{
unichar thisChar = [formatted characterAtIndex:i];
if (iswdigit(thisChar) || thisChar == '*' || thisChar == '#')
result[outLength++] = thisChar; // diallable number or symbol
else if (i == 0 && thisChar == '+')
result[outLength++] = thisChar; // international prefix
}
NSString *stripped = [NSString stringWithCharacters:result length:outLength];
Należy pamiętać, że cyfry takie jak "+" są niedozwolone w numerach telefonów. –
Numery telefonów powinny * zaczynać się * od znaku +, zgodnie z [ITU-T E.123] (http://www.itu.int/rec/T-REC-E.123-200102-I/en). – dreamlax
To prawda, ale muszę uzyskać numer w typie całkowitoliczbowym. Powinienem to uwzględnić w szczegółach pytania. – Mack