2010-12-02 26 views
7

Tôi đã có một biểu thức chính quy đơn giản:JavaScript biểu thức chính quy - hai [az] tiếp theo là ba [0-9] chỉ

[A-z]{2}[0-9]{3})$/g bên như sau:

regForm.submit(function(){ 
    if ($.trim($('#new-usr').val()).match(/([A-z]{2}[0-9]{3})$/g)) { 
    alert('No'); 
    return false; 
    } 
}); 

này được một cách chính xác rằng đọc một cái gì đó như 'ab123' cho một cảnh báo và 'ab1234' thì không. Tuy nhiên, 'abc123' vẫn đang ném cảnh báo. Tôi cần nó vì vậy nó chỉ ném cảnh báo khi nó chỉ là 2 chữ cái theo sau bởi ba con số.

Trả lời

11

Hãy thử /^[A-z]{2}[0-9]{3}$/g để thay thế.

Bạn cần chỉ định rằng toàn bộ chuỗi cần phải được đối sánh. Nếu không, bạn sẽ nhận được phần được đánh dấu phù hợp: a bc123.

(Tôi bỏ qua () 's, bởi vì bạn không thực sự cần nhóm.)

BTW, bạn có chắc rằng bạn muốn [A-z] và không chỉ [A-Za-z]?

7

Lớp nhân vật [A-z] có lẽ không phải là thứ bạn cần.

Tại sao?

Lớp nhân vật [A-z] khớp với một số ký tự không phải chữ cái như [, ] trong số những người khác.

JS fiddle link để chứng minh điều này.

This W3school tutorial đề xuất không chính xác.

Nếu bạn chỉ cần chữ thường sử dụng [a-z]
Nếu bạn chỉ cần chữ hoa sử dụng [A-Z]
Nếu bạn cần cả hai sử dụng: [a-zA-Z]

Nếu bạn muốn kết hợp một chuỗi nếu nó có 2 chữ cái theo sau 3 chữ số bất cứ nơi nào trong chuỗi, chỉ cần loại bỏ vào cuối neo $ từ mô hình của bạn:

[a-z]{2}[0-9]{3} 

Nếu bạn muốn kết hợp một chuỗi nếu nó có 2 chữ cái tiếp theo là 3 chữ số và không có gì khác sử dụng cả hai bắt đầu neo ^ và kết thúc neo $ như

^[a-z]{2}[0-9]{3}$ 
+0

Xin chào, Đó là một chuỗi chính xác hai a-z theo sau là ba 0-9. Chúc mừng. –

+0

Lớp nhân vật tôi đang sử dụng '\t Tìm bất kỳ ký tự nào từ chữ hoa A đến chữ thường z' như được tìm thấy trên http://www.w3schools.com/jsref/jsref_obj_regexp.asp. Điều này không được khuyến cáo? –

+0

@Scott: Không nên sử dụng.Vui lòng xem câu trả lời cập nhật của tôi. – codaddict

1

Hoặc bạn có thể sử dụng:

/\b([A-z]{2}[0-9]{3})\b/g 

nếu chuỗi của bạn có chứa nhiều từ và bạn đang cố gắng để phù hợp với một từ.

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