Làm cách nào để xác thực số điện thoại trong python?

Trong hướng dẫn này, nó chỉ ra cách tìm và xác thực số điện thoại trong Python bằng các ví dụ đơn giản. Chúng tôi sẽ xem xét các định dạng số điện thoại khác nhau phổ biến nhất

Tùy chọn tốt nhất để tìm kiếm và xác thực dữ liệu như số điện thoại, mã zip, số nhận dạng là Biểu thức chính quy hoặc Regex

Tiếp theo, chúng ta sẽ xem các ví dụ để tìm, trích xuất hoặc xác thực số điện thoại từ một chuỗi hoặc văn bản nhất định. Bài viết bắt đầu với những ví dụ đơn giản và kết thúc với những ví dụ nâng cao

Bước 1. Tìm số điện thoại đơn giản

Giả sử rằng chúng ta cần xác thực các định dạng số điện thoại đơn giản không thay đổi. Ví dụ

  • 000-000-000
re.findall[r"[\d]{3}-[\d]{3}-[\d]{3}", text]
  • 000 000 0000
re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]

Mục tiêu là tìm tất cả các kết quả khớp cho mẫu.
Giải pháp đã đề cập rất cơ bản và không hoạt động đối với các số như.

  • re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
    
    0 - nó sẽ chỉ tìm thấy
    re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
    
    1
  • re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
    
    2
  • re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
    
    3

Để giải quyết những trường hợp đó, Regex nên được cải thiện

Bước 2. Regex cho số điện thoại có dấu cộng

Số điện thoại thường được hiển thị với dấu cộng như

  • +000-000-000

Định dạng này phù hợp với biểu thức chính quy tiếp theo

re.findall[r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text]

Lưu ý rằng điều này sẽ bắt

  • 000-000-000
  • +000-000-000

nhưng cũng

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
4 sẽ được trích xuất là 000-000-000. Trong bước tiếp theo chúng ta sẽ giải quyết vấn đề này

Bước 3. Xác thực số điện thoại để khớp chính xác

Nếu định dạng quan trọng và chỉ cần kết hợp chính xác như.
______11,

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
6 nhưng không -
re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
4 ,
re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
8 thì chúng ta cần thêm ranh giới từ vào Regex của mình bằng cách thêm vào đầu và cuối
re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
9.

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
3

Tiếp theo, hãy xem một ví dụ chung hơn bao gồm các số điện thoại quốc tế và quốc gia

Bước 4. Xác thực số điện thoại quốc tế

Khó tìm và test số quốc tế chính xác 100%. Có thể cần phân tích dữ liệu để kiểm tra định dạng nào có trong văn bản

Một giải pháp khả thi để xác nhận số quốc tế là

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
4

Một biểu thức chính quy khác là

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
5

Bước 4. Xác thực số điện thoại của Hoa Kỳ, Vương quốc Anh, Pháp

Ví dụ: hãy bắt đầu với số điện thoại của Hoa Kỳ

  • [000]000-0000
  • 000-000-0000
  • [000] 000-0000

có thể được thực hiện với Regex tiếp theo

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
6

số UK hoặc GB như

  • +447222000000
  • +44 7222 000 000

có thể được tìm kiếm và xác nhận bởi

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
7

giải pháp khả thi khác cho Vương quốc Anh là.

re.findall[r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text]
0

Regex đơn giản tiếp theo sẽ hoạt động với các số tiếng Pháp

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
9

giống

  • 00 00 00 00 00
  • +33 0 00 00 00 00

Bước 5. Tìm số điện thoại ở các định dạng khác nhau

Nếu bạn muốn tạo một Regex có nhiều định dạng khác nhau, bạn có thể thử với định dạng tiếp theo

re.findall[r"[\d]{3} [\d]{3} [\d]{3}", text]
0

Cái ở trên sẽ bao gồm hầu hết các số điện thoại nhưng sẽ không hoạt động với tất cả

Nếu việc xác thực là quan trọng hoặc các tính năng bổ sung là cần thiết như

  • cập nhật cho các định dạng/quốc gia/khu vực mới
  • thông tin địa lý liên quan đến một số điện thoại
  • thông tin múi giờ

sau đó chúng tôi sẽ đề xuất các thư viện trưởng thành được sử dụng. Ví dụ điển hình trong trường hợp này là thư viện Java và JavaScript của Google để phân tích cú pháp, định dạng và xác thực số điện thoại quốc tế

Sự kết luận

Hãy nhớ rằng Regex rất mạnh mẽ nhưng bạn có thể gặp phải các vấn đề về hiệu suất đối với những thứ phức tạp. Cố gắng sử dụng Regex đơn giản và dễ hiểu. Đôi khi bạn có thể cần chơi với cờ để làm cho nó hoạt động bình thường

Xin chào. Đây là thử thách duy nhất tôi cần làm, để hoàn thành khóa học python. Số hợp lệ bắt đầu bằng 1or8or9 và có độ dài là 8. Mã của tôi đã vượt qua 4 bài kiểm tra đầu tiên, nhưng không đạt ở bài kiểm tra thứ 5. Tôi không thể thấy số điện thoại trong bài kiểm tra thứ 5. Những gì có thể là vấn đề? . nhập lại số = input[] nếu lại. tìm kiếm["[[189]][\d]+", số] và len[số] == 8. in ["Hợp lệ"] khác. in["Không hợp lệ"]

Cách tốt nhất để xác thực số điện thoại là gì?

Các phương pháp hay nhất để xác thực số điện thoại .
Xác nhận rằng số điện thoại hợp lệ. .
Kiểm tra loại đường dây, bao gồm số điện thoại di động, điện thoại cố định và VoIP. .
Xây dựng danh sách cho phép mã quốc gia để chấp nhận. .
Duy trì một danh sách các nhà cung cấp dịch vụ dựa trên danh tiếng

Làm cách nào tôi có thể thêm xác thực số điện thoại di động?

Có hai cách để xác thực số điện thoại di động trong Java. .
Sử dụng biểu thức chính quy. Sử dụng lớp mẫu. Sử dụng Chuỗi. phương thức match[]
Sử dụng API libphonenumber của Google

Có thể theo dõi số điện thoại bằng python không?

Viết văn bản. py . py [hoặc tên bạn đặt cho tệp], viết số bạn muốn theo dõi cùng với mã quốc gia In text.py [or the name you gave the file], write the number you want to track with the country code . Biến — số — lưu số điện thoại bạn muốn theo dõi. Hãy nhớ bao gồm mã quốc gia bắt đầu bằng dấu +. Con số trên chỉ là một ví dụ ngẫu nhiên.

Chủ Đề