Regex số điện thoại Mỹ

Dùng /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ để kiểm tra xem toàn bộ chuỗi có phải là số điện thoại Mỹ hợp lệ hay không. Mọi ví dụ bên dưới đều đã được kiểm thử với mẫu này, và bạn có thể mở chúng trong Regex Tester với sẵn các mẫu thử.

Cập nhật

/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/
Mở trong Regex Tester
Đầu vàoKết quảNhóm
(212) 555-0123✓ Khớp212 555 0123
212-555-0123✓ Khớp212 555 0123
+1 415.555.0199✓ Khớp415 555 0199
4155550199✓ Khớp415 555 0199
123-456-7890✗ Không khớp
555-1234✗ Không khớp
(212) 555-01234✗ Không khớp
+44 20 7183 8750✗ Không khớp

Cách hoạt động của mẫu

PhầnÝ nghĩa
(?:\+1[-. ]?)?Mã quốc gia +1 tùy chọn, theo sau là dấu phân cách tùy chọn
\(?([2-9]\d{2})\)?Mã vùng (nhóm 1), có thể đặt trong ngoặc đơn; không được bắt đầu bằng 0 hoặc 1
[-. ]?Dấu gạch ngang, dấu chấm hoặc khoảng trắng tùy chọn
(\d{3})Mã trung kế (nhóm 2)
(\d{4})Số máy (nhóm 3)

Ví dụ code

JavaScript

const re = /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})', value))

PHP

preg_match('/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/', $value) === 1;

Ghi chú và giới hạn

Ba nhóm này cho phép bạn chuẩn hóa mọi định dạng được chấp nhận, ví dụ thành ($1) $2-$3. Với số điện thoại quốc tế, hãy lưu theo định dạng E.164 và dùng thư viện như libphonenumber để xác thực thực tế.

Câu hỏi thường gặp

Regex cho số điện thoại Mỹ là gì?
/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ — mẫu này khớp toàn bộ chuỗi. Xem bảng phía trên để biết mỗi phần làm gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những ví dụ sau khớp: (212) 555-0123, 212-555-0123, +1 415.555.0199, 4155550199. Các ví dụ còn lại thì không.
Làm sao để kiểm thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ tự động được tải, đồng thời các kết quả khớp sẽ được tô sáng khi bạn chỉnh sửa.