Hướng dẫn validate phone number regex python - xác thực số điện thoại regex python

Trong hướng dẫn này, nó đã chỉ ra cách tìm và xác nhận số điện thoại bằng 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 là phổ biến nhất.it's shown how to find and validate phone numbers in Python using simple examples. We will review different phone number formats which are the most popular.

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, định danh là biểu thức chính quy hoặc regex.

Tiếp theo, chúng ta sẽ thấy các ví dụ cần tìm, trích xuất hoặc xác thực số điện thoại từ một văn bản hoặc chuỗi nhất định. Bài viết bắt đầu với các ví dụ dễ dàng và kết thúc với những cái 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ụ:simple phone number formats which don't change. For example:

  • 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 trận đấu cho mẫu. Giải pháp được đề cập rất cơ bản và nó không hoạt động cho các số như:
The mentioned solution is very basic and it's not working for numbers like:

  • re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
    
    3 - nó sẽ chỉ tìm thấy
    re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
    
    4
  • re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
    
    5
  • re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
    
    6

Để đối phó với những trường hợp đó, Regex nên được cải thiện.

Bước 2: Regex cho các số điện thoại có điểm cộng

Thường thì số điện thoại được hiển thị với dấu cộng như:phones numbers are displayed with plus sign like:

  • +000-000-000

Định dạng này được khớ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 được:

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

nhưng cũng:

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

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

Nếu định dạng là quan trọng và chỉ cần các trận đấu chính xác như:

re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
4,
re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
9 nhưng không -
re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
7,
re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
1 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)
2:
re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
4,
re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
9 but not -
re.findall(r"[\d]{3} [\d]{3} [\d]{3}", text)
7 ,
re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
1 then we need to add word boundaries to our Regex by adding at the start and the end
re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
2:

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

Tiếp theo, chúng ta hãy xem một ví dụ chung chung 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ế

Thật khó để tìm và kiểm tra số quốc tế với độ chính xác 100%. Phân tích dữ liệu có thể cần thiết để kiểm tra các định dạng nào có trong văn bản.find and test international numbers with 100% accuracy. Analysis of the data might be needed in order to check what formats are present in the text.

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

re.match(r"^[\+\(]?\d+(?:[- \)\(]+\d+)+$", phone)

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

re.match(r"^[\+\d]?(?:[\d-.\s()]*)$", phone)

Bước 4: Xác thực chúng tôi, Vương quốc Anh, số điện thoại của Pháp

Ví dụ: hãy bắt đầu với số điện thoại của chúng tôi:US phone numbers:

  • (000)000-0000
  • 000-000-0000
  • (000) 000-0000

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

re.match(r"^(\([0-9]{3}\) ?|[0-9]{3}-)[0-9]{3}-[0-9]{4}$", phone)

Các số của Vương quốc Anh hoặc GB như: like:

  • +447222000000
  • +44 7222 000 000

có thể được tìm kiếm và xác thực bởi:searched and validated by:

^(?:0|\+?44)\s?(?:\d\s?){9,11}$

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)
3

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

^(?:(?:\+|00)33|0)\s*[\d](?:[\s.-]*\d{2}){4}$

like:

  • 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 xây dựng một regex mà tìm các định dạng khác nhau, bạn có thể thử với mô hình tiếp theo:

[\+\d]?(\d{2,3}[-\.\s]??\d{2,3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})

Một 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 cho 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 số điện thoại
  • Thông tin về Timezone

Sau đó, chúng tôi sẽ đề nghị 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 cá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ể phải đối mặt với các vấn đề hiệu suất cho những vấn đề 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 bằng cờ để làm cho nó hoạt động đúng:

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

Một lưu ý quan trọng khác là về việc sử dụng:

  • Bắt đầu và kết thúc -
    re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
    
    5 và
    re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
    
    6
  • Ranh giới từ -
    re.findall(r"\+?[\d]{3}-[\d]{3}-[\d]{3}", text)
    
    2

Chúng tôi đã đề cập đến hầu hết các trường hợp xác nhận điện thoại bằng cách sử dụng Python và Regex.phone validation by using python and Regex.

Gửi và kiểm tra mã xác minh SMS với Dịch vụ Xác minh Twilio ..

Các biểu thức thông thường bên dưới có thể được sử dụng để xác thực nếu một chuỗi là định dạng số điện thoại hợp lệ và để trích xuất số điện thoại từ một chuỗi. Xin lưu ý rằng xác thực này không thể biết nếu một số điện thoại thực sự tồn tại.

Xác thực số điện thoại quốc tế cơ bản

Kiểm tra nó!

Một regex đơn giản để xác nhận chuỗi theo định dạng số điện thoại quốc tế hợp lệ mà không có trình phân cách và với dấu cộng tùy chọn cộng:

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong Python

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

Thông tin bổ sung về việc xác thực số điện thoại

Biểu thức chính quy này sẽ phù hợp với các số điện thoại được nhập với các dấu phân cách (không gian, dấu chấm, giá đỡ, v.v.)

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

Kiểm tra nó!

/^\\+?\D / . \ s]? \ d {1,4} [-. \ s]? \ d {1,9} $/

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong Python

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

Kiểm tra nó!

ĐÚNG VẬY

Sai

Nhập một văn bản vào đầu vào ở trên để xem kết quả

Mã ví dụ trong Python

Thông tin bổ sung về việc xác thực số điện thoại

Mặc dù xác thực số điện thoại bằng Regex có thể cung cấp khả năng kiểm tra định dạng của số điện thoại, nhưng không đảm bảo rằng số tồn tại.

  • Cũng có thể có một tùy chọn để lại trường số điện thoại mà không cần xác thực vì một số người dùng có thể có:
  • Số điện thoại phức tạp hơn với phần mở rộng

Làm thế nào để bạn xác thực một số điện thoại trong Python?

Xác nhận với Phonenumbers Python..
Đầu tiên, bạn phải nhập thư viện Phonenumbers. nhập khẩu phonenumbers ..
Tạo một biến, được gọi là String_phone_number. ....
Sau đó, bạn cần phân tích số điện thoại đã cho. ....
Cuối cùng, bạn phải sử dụng phương thức is_possible_number () để thực hiện xác thực ..

Làm cách nào để xác nhận số điện thoại?

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

Làm cách nào để trích xuất số điện thoại từ một chuỗi trong Python?

Trích xuất số điện thoại từ văn bản Chúng tôi có thể sử dụng thư viện Phonenumbers để trích xuất số điện thoại từ một văn bản có Python.Các phonenumbers tiện dụng.Phương thức PhonenumberMatcher () lặp lại văn bản và trích xuất bất kỳ số điện thoại nào, cho dù đó là định dạng trong nước hay quốc tế.use the phonenumbers library to extract phone numbers from a text with Python. The handy phonenumbers. PhoneNumberMatcher() method iterates the text and extract any phone number, whether it is in a domestic or international format.

Làm thế nào để Django xác nhận số điện thoại trong Python?

Cách xác minh số điện thoại trong ứng dụng Django với Twilio .....
Tùy chỉnh mô hình cơ sở dữ liệu người dùng ..
Yêu cầu biết thêm thông tin trong trang đăng ký người dùng ..
Gửi và kiểm tra mã xác minh SMS với Dịch vụ Xác minh Twilio ..