Chuyển đến nội dung
ToolMug

Mẫu biểu thức chính quy phổ biến

Các biểu thức chính quy dùng sẵn để kiểm tra hằng ngày — email, URL, tên miền, IPv4 và MAC, số nguyên, thập phân và tiền, ngày giờ, tên người dùng, mật khẩu mạnh, màu hex, UUID và phiên bản ngữ nghĩa, cùng định dạng điện thoại, căn cước và mã bưu chính Trung Quốc. Mỗi mẫu có mô tả, ví dụ khớp và không khớp; bạn có thể sao chép hoặc nhập để thử.

Chạy trong trình duyệt — không có dữ liệu nào bạn nhập bị tải lên

  • Địa chỉ email

    Định dạng email phổ biến với dấu chấm, dấu cộng và tên miền nhiều cấp

    /^[\w.+-]+@[\w-]+(\.[\w-]+)+$/

    ✓ name@example.com a.b+tag@mail.co.uk✗ name@ @example.com a b@example.com

  • URL (http/https)

    Bắt đầu bằng http:// hoặc https:// và không chứa khoảng trắng

    /^https?:\/\/[^\s/$.?#][^\s]*$/i

    ✓ https://example.com/path?q=1 http://localhost:8080✗ ftp://example.com example.com https:// bad

  • Tên miền

    Tên miền nhiều cấp gồm chữ cái, chữ số và dấu gạch nối

    /^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/

    ✓ example.com sub.example.co.uk✗ -bad.com example exa_mple.com

  • Địa chỉ IPv4

    Bốn số từ 0 đến 255 không có số 0 đứng đầu

    /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/

    ✓ 192.168.1.1 8.8.8.8 255.255.255.0✗ 256.1.1.1 1.2.3 01.2.3.4

  • Địa chỉ MAC

    Sáu cặp chữ số hex, ngăn cách bằng dấu hai chấm hoặc gạch nối

    /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/

    ✓ 00:1A:2B:3C:4D:5E 00-1a-2b-3c-4d-5e✗ 001A2B3C4D5E 00:1A:2B:3C:4D

  • Số di động Trung Quốc

    11 chữ số bắt đầu bằng 13–19, không có +86

    /^1[3-9]\d{9}$/

    ✓ 13800138000 19912345678✗ 12345678901 1380013800 +8613800138000

  • Điện thoại cố định Trung Quốc

    Mã vùng cộng số thuê bao, có thể ngăn cách bằng gạch nối

    /^0\d{2,3}-?\d{7,8}$/

    ✓ 010-12345678 0755-1234567 02112345678✗ 12345678 010-123

  • Căn cước Trung Quốc (18 chữ số)

    Kiểm tra độ dài mã vùng và ngày sinh; ký tự cuối có thể là X. Không kiểm tra checksum.

    /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/

    ✓ 11010519491231002X 440308199901010012✗ 11010519491331002X 1101051949123100

  • Mã bưu chính Trung Quốc

    Sáu chữ số

    /^\d{6}$/

    ✓ 100000 010000✗ 10000 1000000

  • Biển số Trung Quốc

    7 ký tự với xe thường, 8 với xe năng lượng mới

    /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/

    ✓ 京A12345 粤BD12345 沪A1234学✗ 京12345 京AI2345

  • Chỉ chữ Hán

    Chỉ các chữ tượng hình CJK thông dụng

    /^[\u4e00-\u9fa5]+$/

    ✓ 中文 正则表达式✗ 中文abc

  • Số QQ

    5–11 chữ số, không bắt đầu bằng 0

    /^[1-9]\d{4,10}$/

    ✓ 10001 123456789✗ 01234 1234

  • Số thẻ ngân hàng

    16–19 chữ số; để hợp lệ còn cần kiểm tra Luhn

    /^[1-9]\d{15,18}$/

    ✓ 6222021234567890123 4111111111111111✗ 0222021234567890 622202123456

  • Số nguyên

    Có thể âm

    /^-?\d+$/

    ✓ 0 -42 12345✗ 1.5 1e3

  • Số nguyên dương

    Không có số 0 đứng đầu

    /^[1-9]\d*$/

    ✓ 1 100✗ 0 01 -1

  • Số thập phân

    Có thể âm, có chữ số ở cả hai bên dấu chấm

    /^-?\d+(?:\.\d+)?$/

    ✓ 3.14 -0.5 42✗ .5 1. 1,000

  • Số tiền

    Không âm, tối đa hai chữ số thập phân

    /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/

    ✓ 0 99.9 1234.56✗ 01.00 1.234 -1

  • Ngày (YYYY-MM-DD)

    Tháng 01–12 và ngày 01–31; không kiểm tra số ngày thực của tháng

    /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/

    ✓ 2026-09-26 1999-12-31✗ 2026-13-01 2026-9-26 26-09-2026

  • Giờ (HH:MM[:SS])

    Đồng hồ 24 giờ, giây không bắt buộc

    /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/

    ✓ 09:30 23:59:59✗ 24:00 9:30 12:60

  • Tên người dùng

    Bắt đầu bằng chữ cái; 4–16 chữ cái, chữ số hoặc gạch dưới

    /^[a-zA-Z][a-zA-Z0-9_]{3,15}$/

    ✓ alice_01 Bob2026✗ 1alice ab bad-name

  • Mật khẩu mạnh

    Ít nhất 8 ký tự, gồm chữ hoa, chữ thường, chữ số và ký hiệu

    /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s]).{8,}$/

    ✓ Passw0rd! Aa1@aaaa✗ password Password1 Aa1@

  • Màu hex

    #RGB hoặc #RRGGBB

    /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/

    ✓ #fff #0F766E✗ fff #ffff #12345g

  • UUID

    Định dạng UUID chuẩn (phiên bản 1–8)

    /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i

    ✓ 123e4567-e89b-42d3-a456-426614174000✗ 123e4567-e89b-42d3-c456-426614174000 123e4567e89b42d3a456426614174000

  • Phiên bản ngữ nghĩa

    MAJOR.MINOR.PATCH, có thể có bản phát hành trước và siêu dữ liệu build

    /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/

    ✓ 1.0.0 2.1.3-beta.1+build.5✗ 1.0 01.0.0 v1.0.0

  • Cặp thẻ HTML

    Tìm thẻ mở và đóng khớp nhau, lấy tên thẻ và nội dung

    /<([a-zA-Z][\w-]*)\b[^>]*>([\s\S]*?)<\/\1>/g

    ✓ <b>bold</b> <a href="#">link</a>✗ <b>unclosed plain text

  • Dòng trống

    Với cờ m, tìm dòng trống hoặc chỉ có khoảng trắng, ví dụ để xóa chúng

    /^\s*$/m

    ✓ ✗ text

Mẫu dùng cú pháp JavaScript và hoạt động trong hầu hết ngôn ngữ như Java, Python và Go (chú ý thoát dấu gạch chéo ngược). Chúng chỉ kiểm tra định dạng; để biết một mã hoặc số thẻ có thật cần checksum hoặc xác thực chính thức.

Cách sử dụng

  1. Tìm định dạng hoặc lọc theo danh mục.
  2. Nhấn Sao chép để lấy mẫu; khi đưa vào chuỗi, hãy thoát dấu gạch chéo ngược.
  3. Nhập vào ô dưới mỗi thẻ để xem ngay có khớp không.

Giải thích tùy chọn

Cú pháp
Viết cho JavaScript và tương thích với hầu hết ngôn ngữ như Java, Python, Go và PHP; trong literal chuỗi cần nhân đôi dấu gạch chéo ngược.
Khớp toàn chuỗi
Mẫu kiểm tra được neo bằng ^ và $ để toàn bộ đầu vào phải khớp. Muốn tìm trong văn bản dài, bỏ neo và thêm cờ g.
Định dạng và tính hợp lệ
Mẫu chỉ kiểm tra định dạng. Để biết mã căn cước hoặc số thẻ có thật cần checksum hoặc kiểm tra chính thức.

Một mẫu được xây dựng như thế nào: ví dụ IPv4

Mẫu IPv4 cho thấy cấu trúc thường gặp của một regex kiểm tra hợp lệ. Một octet được viết thành bốn phương án, thử theo thứ tự, nên mỗi phương án chỉ chấp nhận 0–255:

25[0-5]      250–255
2[0-4]\d     200–249
1\d\d        100–199
[1-9]?\d     0–99, with no leading zero

Toàn bộ mẫu là (octet\.){3}octet, được neo bằng ^ và $. Đó là lý do 192.168.1.1 khớp còn 256.1.1.1, 01.2.3.4 và 1.2.3 thì không.

Định dạng không phải là tính hợp lệ

Một mẫu chỉ kiểm tra hình dạng. Mẫu ngày chấp nhận 2026-02-30 vì nó cho phép ngày 30 ở mọi tháng, và từ chối 2026-13-01 vì không có tháng 13. Với ngày tháng thực, hãy phân tích giá trị bằng thư viện ngày của ngôn ngữ lập trình sau khi kiểm tra bằng regex.

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

Vì sao regex email không hoàn toàn theo RFC?

Regex tuân thủ đầy đủ RFC 5322 rất lớn nhưng vẫn bỏ sót ít lỗi thực tế. Hãy dùng kiểm tra thoáng và xác nhận địa chỉ bằng email xác minh.

Gỡ lỗi regex phức tạp thế nào?

Dùng công cụ thử regex, công cụ tô sáng từng kết quả và nhóm, đồng thời có thể thử thay thế.

Các mẫu có hỗ trợ Unicode không?

Phần lớn nhắm tới đầu vào ASCII. Nếu cần nhận chữ của mọi hệ chữ, hãy thêm cờ u và thuộc tính Unicode như chữ cái Unicode.

Quyền riêng tư

Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Tệp và văn bản được xử lý ngay trên thiết bị và không bao giờ được tải lên máy chủ của chúng tôi.

Công cụ liên quan