2012-09-22 18 views
6

que saben sobre el C# puerto de la Google libphonenumber de análisis Biblioteca: http://code.google.com/p/libphonenumber/Números de análisis telefónicas a sus partes

Lo que necesito es tomar una serie de números de teléfono y dividirla en las piezas correspondientes, código de país, Código de área, prefijo, número y extensión.

¿Se puede usar esta biblioteca para hacer eso? Si es así, ¿alguien puede publicar una prueba simple en C# para hacer eso? No veo cómo hacerlo en los documentos.

Por cierto, pueden ser nacionales o internacionales.

Respuesta

6

La biblioteca libphonenumber analizará un número y validará que coincida con un patrón conocido para números nacionales e internacionales. Le indicará el código de país y el patrón de marcado correcto a nivel nacional o internacional para cualquier número determinado.

No lo analizará en partes constituyentes más allá de eso. Sin código de área, prefijo, número, análisis de extensión.

Es de código abierto, por lo que si necesita hacer esto, podría ser un buen punto de partida, pero estoy seguro de que será una gran empresa.

+0

Entonces, ¿sabes de una biblioteca que hará eso? – MB34

+0

@ MB34, lo siento, no lo hago. –

+0

¿Has visto la biblioteca en CodeProject que es de 2008? No estoy seguro de si eso también lo hace. http://www.codeproject.com/KB/cs/PhoneNumberStruct.aspx?display=Print – MB34

3

Patrick Mézard amablemente ha portado la biblioteca de C#:

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

Para el uso, se puede ver en el sitio web oficial:

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

El código Java puede ser directamente traducido a C#. Por ejemplo:

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()); 
} 

Buena suerte.

Actualización:

Más ejemplos: http://code.google.com/p/libphonenumber/source/browse/#svn/trunk/java/libphonenumber/test/com/google/i18n/phonenumbers

Si usted no ve lo que necesita, entonces supongo que se puede aplicar por sí mismo.

+0

No veo que analizar las partes. Si paso el código de país "CH", ¿por qué debería obtener está usando 'swissNumberProto.CountryCode?' – MB34

Cuestiones relacionadas