2013-08-18 4 views
-2

Je veux construire une méthode qui obtiendra une chaîne (de préférence le texte d'un bloc de texte) et il identifiera et mettra en évidence tous les numéros de téléphone dans la chaîne. L'objectif est de permettre à l'utilisateur d'appuyer sur n'importe quel numéro et de l'appeler ou de l'envoyer directement par SMS (en utilisant le lanceur approprié).Extraire le numéro de téléphone du texte

Comment puis-je résoudre ce problème? Des idées? Merci d'avance!

+0

Voulez-vous une solution pour extraire les numéros de téléphone ou permettant à l'utilisateur d'exploiter un numéro et appel/texte? –

+0

http://stackoverflow.com/questions/1559753/réglage-expression-par-match-us-phone-numbers L'utilisation d'une expression rationnelle comme celle-ci peut vous aider. –

+0

http://stackoverflow.com/questions/3764814/how-to-detect-telephone-numbers-in-a-text-and-replace-them Possible répété. – jbaylina

Répondre

0
String s = "abc055667788abc"; 
string phoneNumber; 
foreach(char c in s) 
{ 
    if(Char.isNumber(c) || c == " " || c == "+") 
    { 
     phoneNumber = phoneNumber + c; 
     minimumDigits++; 
     if(minimumDigits >= 9) 
     { 
      NumberDetected(phoneNumber); 
     } 
    } 
    else 
    { 
     minimumDigits = 0; 
    } 
} 

NumberDetected(string rawNumber) 
{ 
    int plusses = 0; 
    foreach(char c in rawNumber) 
    { 
     if(c == "+") 
     { 
      plusses++; 
     } 
    } 
    if(plusses <= 1) 
    { 
     if(rawNumber.StartsWith("+") 
     { 
      NumberDone(rawNumber); 
     } 
    } 
    else 
    { 
     MessageBox.Show("Number contained too many plusses!"); 
    } 
} 
+0

Cela semble être l'approche la plus simple, merci! – Icarus

+1

@Icarus pas de problème. Faites-nous savoir comment vous avez résolu le problème cliquez pour appeler :) –

+0

Cela correspondrait '1 + 2 + 3 + 4 + 5' trop .... – I4V

1

Pour ce faire, vous pouvez utiliser Regular expression.

Exemple: -

var s= new Regex(@"(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}", 
RegexOptions.IgnoreCase); //North American number 

var text = "Some Texxt"; 
MatchCollection m= s.Matches(text); 
Questions connexes