2011-04-20 32 views
13

Tôi đang viết một phương pháp tùy chỉnh cho một plugin jQuery:Làm thế nào để kiểm tra các ký tự chữ và

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || (/*contains "^[a-zA-Z0-9]*$"*/); 
}); 

Tôi biết regexp cho những gì tôi muốn, nhưng tôi không chắc chắn làm thế nào để viết một cái gì đó trong JS sẽ đánh giá là True nếu nó chứa các ký tự chữ và số. Bất kỳ giúp đỡ?

+0

Nếu bạn thay đổi câu hỏi, hãy viết 'CHỈNH SỬA' và mô tả những gì bạn thay đổi trong câu hỏi của bạn. – nk9

Trả lời

37

Xem test Phương thức RegExp.

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value); 
}); 
+2

câu trả lời hay. Tôi muốn đề nghị sử dụng '+' trong regex thay vì '*' nếu không một chuỗi rỗng sẽ khớp với – Cfreak

+0

Tôi đồng ý vì tùy chọn sẽ xử lý một chuỗi rỗng. –

+0

Đây gần như chính xác những gì tôi muốn. Nếu tôi nhập 'qwertyuiop' thì nó sẽ đúng. Nhưng tôi cũng muốn nhập 'qwerty uiop' (với khoảng trắng) và vẫn đúng. Tôi chỉ không muốn một đầu vào hoàn toàn trống ngay cả khi số lượng khoảng trống vượt quá độ dài tối thiểu. Làm thế nào tôi có thể làm điều đó? – AKor

3

Bạn có thể sử dụng regexes trong JavaScript:

if(yourstring.match(/^[a-zA-Z0-9]+/)) { 
    return true 
} 

Lưu ý rằng tôi đã sử dụng + thay vì *. Với * nó sẽ trả về true nếu chuỗi là rỗng

0
$("input:text").filter(function() { 
    return this.value.match(/^[a-zA-Z0-9]+/); 
}) 
4
// use below ... It is better parvez abobjects.com 
jQuery.validator.addMethod("postalcode", function(postalcode, element) { 
    if(this.optional(element) || /^[a-zA-Z\u00C0-\u00ff]+$/.test(postalcode)){ 
     return false; 
    }else{ 
     return this.optional(element) || /^[a-zA-Z0-9]+/.test(postalcode); 
    } 

}, "<br>Invalid zip code"); 



rules:{ 
    ccZip:{   
      postalcode : true 
     }, 
     phone:{required: true}, 

This will validate zip code having no letters but alphanumeric 
7

Nếu bạn muốn sử dụng ký tự tiếng Tây Ban Nha trong xác nhận chữ và số của bạn, bạn có thể sử dụng này:

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^[a-zA-Z0-9áéíóúÁÉÍÓÚÑñ ]+$/.test(value); 
}); 

Tôi cũng đã thêm một không gian trống để cho phép người dùng thêm các từ

+0

Nếu bạn muốn sử dụng nhiều ngôn ngữ hơn, bạn có thể thêm các ký tự tiếng Pháp và tiếng Đức, nhưng regex có thể có nhiều "nặng". Chỉ cần sử dụng các ký tự mà bạn thực sự sẽ đánh giá – OtakuPahp

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