Regex cho số thập phân

Dùng /^-?\d+(?:\.\d+)?$/ để kiểm tra toàn bộ chuỗi có phải là một số thập phân 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

/^-?\d+(?:\.\d+)?$/
Mở trong Regex Tester
Đầu vàoKết quả
42✓ Khớp
-3.14✓ Khớp
0.5✓ Khớp
.5✗ Không khớp
1.✗ Không khớp
1,000✗ Không khớp
abc✗ Không khớp
+1✗ Không khớp

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

Thành phầnÝ nghĩa
-?Dấu trừ tùy chọn
\d+Phần nguyên
(?:\.\d+)?Dấu chấm và chữ số thập phân (tùy chọn)

Ví dụ code

JavaScript

const re = /^-?\d+(?:\.\d+)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'-?\d+(?:\.\d+)?', value))

PHP

preg_match('/^-?\d+(?:\.\d+)?$/', $value) === 1;

Ghi chú và giới hạn

Để cho phép .5 thì thay \d+ thành \d* ở phần nguyên (và đảm bảo chuỗi không rỗng).

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

Regex cho số thập phân là gì?
/^-?\d+(?:\.\d+)?$/ — mẫu này khớp với 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ụ đã thử, những giá trị khớp là: 42, -3.14, 0.5. Các ví dụ còn lại thì không khớp.
Làm sao để thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ được nạp tự động, và các phần khớp sẽ được tô sáng khi bạn chỉnh sửa.