2012-05-27 38 views
10

Tôi có mã dưới đây. Nó chỉ hoạt động khi tôi có 2 chữ số. Nếu tôi có 1 chữ số không hoạt động. Tôi muốn làm việc trong cả hai trường hợp: một hoặc hai chữ số.
var numberRegex = /^[1-9][0-9]$/;
Tôi đã thử một cái gì đó như thế này nhưng tiếc là không hoạt động:
var numberRegex = /^[1-9]?[1-9][0-9]$/;
Cám ơn sự ủng hộ.Một hoặc hai chữ số Regex

Trả lời

15

Hãy thử này ra:

/^\d{1,2}$/; 

Đọc những gì bạn có vẻ như bạn không muốn chấp nhận con số như 01.

/^\d{1}|[1-9]\d{1}$/; 
+0

Regex thứ hai không hoàn toàn đúng. '|' có mức độ ưu tiên thấp hơn '^' và '$'. Bạn cũng có thể đơn giản hóa bằng cách chỉ tạo tùy chọn '[1-9]'. '/^[1-9]? \ D {1} $ /' –

+0

Chỉ cần nhận ra rằng bạn có thể làm tốt hơn - '\ d {1}' là thừa, và tương đương với '\ d'. –

+6

Tôi muốn đi với '/^[1-9]? \ D $ /' Không cần thay đổi, chỉ cần tạo chữ số hàng đầu tùy chọn. –

0

thử regex này: /^[1-9]\d{0,1}$/

1

Hãy thử điều này.

/^[0-9]|[0-9][0-9]$/ 

Điều này sẽ thực hiện công việc. Sử dụng toán tử Or sẽ thực hiện điều đó.

+0

Đây là một giải pháp tuyệt vời cho người mới bắt đầu của Regex – GoreDefex

Các vấn đề liên quan