AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Handynummer erkennen

Ein Thema von shmia · begonnen am 1. Jun 2010 · letzter Beitrag vom 2. Jun 2010
Antwort Antwort
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

Re: Handynummer erkennen

  Alt 1. Jun 2010, 18:41
Regular Expressions wäre natürlich auch eine Möglichkeit...

Naja hier mal die Version, die auch die Schweizer und Österreicher Handyvorwahlen erkennt.
Der Rest wäre dann Fleissarbeit.
Delphi-Quellcode:
function IsMobilePhoneNumber(x:string):Boolean;
const
   vorwahl_DE: array[0..19] of string =
   (
      // T-Mobile
      '151', '160', '170', '171', '175',
      // vodafone
      '152', '162', '172', '173', '174',
      // E-Plus
      '157', '163', '177', '178',
      // O2
      '159', '176', '179',
      // Rest (simyo, Group 3G,..)
      '150', '161', '164'
         );
   vorwahl_CH: array[0..3] of string =
   ( '76', '77', '78', '79' );

   vorwahl_AT: array[0..18] of string =
   ( '650','651','652','653','655','657','659','660','661','663',
   '664','665','666','667','668','669', '67','68','69' );

   vorwahl_GB: array[0..2] of string =
   ( '7824', '7590', '7734' );
var
   p1 : Integer;
begin
   x := StrRemoveChars(x, [#10,#13,#9,' ','P','-', ',']); // Störzeichen entfernen
   if x = 'then
   begin
      Result := False;
      Exit;
   end;

   // Nummer mit diesem Aufbau behandeln
   // +49(0)170xxxxxxx
   if x[1] = '+then
   begin
      // die (0) rausschneiden
      p1 := Pos('(0)', x);
      if (p1 > 1) then
         Delete(x, p1, 3);
   end;

   // Falls die Nummer diesen Aufbau hat
   // (0170)xxxxxxx
   // dann die Klammern entfernen
   if x[1] = '(then
      x := StrRemoveChars(x, ['(',')']);


   case StrPrefixIndex(x, ['+49', '+41', '+43','+44']) of
      0: // Deutscheland
         Result := StrHasPrefix(Copy(x, 4,10), vorwahl_DE);
      1: // Schweiz
         Result := StrHasPrefix(Copy(x, 4,10), vorwahl_CH);
      2: // Österreich
         Result := StrHasPrefix(Copy(x, 4,10), vorwahl_AT);
      3: // vereinigtes Königreich
         Result := StrHasPrefix(Copy(x, 4,10), vorwahl_GB);
   else
      if x[1] ='0then
         Result := StrHasPrefix(Copy(x, 2, 10), vorwahl_DE)
      else
         Result := False;
   end;
end;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz