2012-09-22 40 views
6

tôi biết về C# cảng của Google libphonenumber Parsing Thư viện: http://code.google.com/p/libphonenumber/số Parsing Điện thoại đến các bộ phận của họ

Những gì tôi cần là để có một chuỗi số điện thoại và chia nó ra thành các mảnh tương ứng, Mã quốc gia, Mã vùng, tiền tố, số và phần mở rộng.

Thư viện này có thể được sử dụng để làm điều đó không? Nếu vậy, ai đó có thể gửi một bài kiểm tra đơn giản trong C# để làm điều đó? Tôi không thấy làm thế nào để làm điều đó trong các tài liệu.

BTW, chúng có thể là nội địa hoặc quốc tế.

Trả lời

6

Thư viện libphonenumber sẽ phân tích một số và xác thực rằng nó khớp với mẫu đã biết cho số nội địa và quốc tế. Nó sẽ cho bạn biết mã quốc gia và mẫu quay số chính xác trong nước hoặc quốc tế cho bất kỳ số lượng nào.

Nó sẽ không phân tích nó thành các bộ phận cấu thành bên ngoài đó. Không có mã vùng, tiền tố, số, phân tích cú pháp mở rộng.

Đó là nguồn mở vì vậy nếu bạn cần làm điều này, đây có thể là một nơi bắt đầu tốt, nhưng tôi chắc chắn nó sẽ là một công việc lớn.

+0

Sau đó, bạn có biết thư viện sẽ làm điều đó không? – MB34

+0

@ MB34, xin lỗi, tôi thì không. –

+0

Bạn đã xem thư viện trên CodeProject từ năm 2008 chưa? Tôi cũng không chắc nó có làm được điều đó hay không. http://www.codeproject.com/KB/cs/PhoneNumberStruct.aspx?display=Print – MB34

3

Patrick Mezard đã vui lòng chuyển thư viện với C#:

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

Đối với việc sử dụng, bạn có thể ghé qua trang web chính thức:

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

Mã Java có thể được trực tiếp được dịch sang C#. Ví dụ:

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

Chúc may mắn.

Cập nhật:

Thêm ví dụ: http://code.google.com/p/libphonenumber/source/browse/#svn/trunk/java/libphonenumber/test/com/google/i18n/phonenumbers

Nếu bạn không nhìn thấy những gì bạn cần, sau đó tôi đoán bạn có thể thực hiện điều đó cho mình.

+0

Tôi không thấy việc phân tích cú pháp các phần. Nếu tôi chuyển vào Mã quốc gia "CH", tại sao tôi cần phải sử dụng 'swissNumberProto.CountryCode? ' – MB34

Các vấn đề liên quan