2012-09-22 10 views
6

So del porto C# del Google libphonenumber di analisi Biblioteca: http://code.google.com/p/libphonenumber/I numeri di analisi del telefono alle loro parti

Che cosa ho bisogno è quello di prendere una stringa numero di telefono e suddividerlo in pezzi corrispondenti, Country Code, Prefisso, prefisso, numero ed estensione.

Questa libreria può essere utilizzata per farlo? In tal caso, qualcuno può pubblicare un semplice test in C# per farlo? Non vedo come farlo nei documenti.

BTW, possono essere nazionali o internazionali.

risposta

6

La libreria libphonenumber analizzerà un numero e convaliderà che corrisponda a uno schema noto per numeri nazionali e internazionali. Ti indicherà il codice del paese e il modello di composizione corretto a livello nazionale o internazionale per un dato numero.

Non lo analizzerà in parti costituenti oltre. Nessun prefisso, prefisso, numero, analisi dell'estensione.

È open source, quindi se hai bisogno di farlo potrebbe essere un buon punto di partenza, ma sono sicuro che sarà un'impresa enorme.

+0

Allora, sai di una biblioteca che lo farà? – MB34

+0

@ MB34, scusa, non lo so. –

+0

Hai visto la libreria su CodeProject dal 2008? Non sono sicuro se lo faccia, neanche. http://www.codeproject.com/KB/cs/PhoneNumberStruct.aspx?display=Print – MB34

3

Patrick Mezard ha gentilmente portato la libreria in C#:

https://bitbucket.org/pmezard/libphonenumber-csharp/wiki/Home

Per l'utilizzo, è possibile guardare il sito web ufficiale:

http://code.google.com/p/libphonenumber/

Il codice Java può essere direttamente tradotto in C#. Per esempio:

Java

String swissNumberStr = "044 668 18 00" 
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
try { 
    PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH"); 
} catch (NumberParseException e) { 
    System.err.println("NumberParseException was thrown: " + e.toString()); 
} 

C#

String swissNumberStr = "044 668 18 00"; 
PhoneNumberUtil phoneUtil = PhoneNumberUtil.GetInstance(); 
try 
{ 
    PhoneNumber swissNumberProto = phoneUtil.Parse(swissNumberStr, "CH"); 
    Console.WriteLine(swissNumberProto.CountryCode); 
} 
catch (NumberParseException e) 
{ 
    Console.WriteLine("NumberParseException was thrown: " + e.ToString()); 
} 

Buona fortuna.

Aggiornamento:

Altri esempi: http://code.google.com/p/libphonenumber/source/browse/#svn/trunk/java/libphonenumber/test/com/google/i18n/phonenumbers

Se non vedi quello che ti serve, allora credo che è possibile implementare da soli.

+0

Non vedo l'analisi delle parti. Se passo il codice di paese "CH", perché dovrei ottenere sta usando 'swissNumberProto.CountryCode?' – MB34

Problemi correlati