Regex kiểm tra số điện thoại quốc tế (E.164)

Dùng /^\+[1-9]\d{1,14}$/ để kiểm tra toàn bộ chuỗi có phải là số điện thoại quốc tế (E.164) 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 dữ liệu mẫu.

Cập nhật

/^\+[1-9]\d{1,14}$/
Mở trong Regex Tester
Đầu vàoKết quả
+14155550199✓ Khớp
+442071838750✓ Khớp
+919876543210✓ Khớp
14155550199✗ Không khớp
+0123456789✗ Không khớp
+1 415 555 0199✗ Không khớp
+1234567890123456✗ Không khớp

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

PhầnÝ nghĩa
^\+Bắt đầu bằng dấu cộng
[1-9]Mã quốc gia không bao giờ bắt đầu bằng 0
\d{1,14}Tối đa thêm 14 chữ số nữa — E.164 cho phép tổng cộng 15 chữ số
$Kết thúc chuỗi, nên không có khoảng trắng hay dấu gạch ngang

Ví dụ code

JavaScript

const re = /^\+[1-9]\d{1,14}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'\+[1-9]\d{1,14}', value))

PHP

preg_match('/^\+[1-9]\d{1,14}$/', $value) === 1;

Ghi chú và giới hạn

E.164 là định dạng mà Twilio, WhatsApp và hầu hết các API SMS yêu cầu. Trước khi kiểm tra, hãy loại bỏ khoảng trắng, dấu gạch ngang và dấu ngoặc đơn. Nếu người dùng bỏ quên mã quốc gia, bạn nên thêm mã đó vào.

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

Regex cho số điện thoại quốc tế (E.164) là gì?
/^\+[1-9]\d{1,14}$/ — mẫu này khớp với toàn bộ chuỗi. Xem bảng phía trên để biết từng phần có tác dụng gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những ví dụ khớp là: +14155550199, +442071838750, +919876543210. Các ví dụ còn lại không khớp.
Làm cách nào để 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, và các phần khớp sẽ được tô sáng khi bạn chỉnh sửa.