2014-12-30 14 views
11

Tôi đang sử dụng trình xác thực jquery, nơi tôi đã thêm phương thức để xác thực chuỗi chỉ cho phép số, dấu cách, dấu cộng, gạch nối và dấu ngoặc đơn. Số là bắt buộc trong chuỗi nhưng người thuê tàu khác là tùy chọn.Biểu thức chính quy cho phép số, dấu cách, dấu cộng, dấu gạch nối và dấu ngoặc đơn

Mã của tôi để thêm phương pháp trong jquery validor:

jQuery.validator.addMethod("regex", function(value, element, regexp) { 
     var re = new RegExp(regexp); 
     return this.optional(element) || re.test(value); 
    }, 
    "Please check your input." 
); 

Tiếp theo mã cho các quy tắc:

rules: { 
myfield: { 
    required: true, 
    regex: "[0-9]+" // want to add regular expression but I wrote only for digit which works but do not understand how to reach at my requirements. 
}, 
} 
+0

Sử dụng một chương trình biểu thử nghiệm thường xuyên để giúp bạn chơi xung quanh với và kiểm tra đầu vào khác nhau: http://regexpal.com/ –

+0

Một tìm kiếm đơn giản cho "cú pháp biểu thức chính quy" nên cung cấp cho bạn kiến ​​thức cần thiết để tạo thủ công và gỡ lỗi một cách thông minh. –

Trả lời

28

Bạn có thể thêm các ký tự cần thiết vào lớp nhân vật như

/^(?=.*[0-9])[- +()0-9]+$/ 

Regex Demo

Regex Giải thích

  • (?=.*[0-9]) postive nhìn về phía trước. Đảm bảo rằng có ít nhất một chữ số là

  • [- +()0-9]+ số trận đấu, không gian, dấu cộng, dấu gạch ngang và dấu ngoặc

HOẶC

Nếu bạn đang lưỡng lự trong việc sử dụng aheads nhìn. Bạn có thể viết mà không cho họ một regex lenghier như

/^[- +()]*[0-9][- +()0-9]*$/ 
+3

Nếu không có lookahead: '/^[- +()] * [0-9] [- +() 0-9] * /' – Brainstorm

+0

@Brainstorm Thats một lưu ý tốt – nu11p01n73R

+1

Great Thanks, "/^[- +() ] * [0-9] [- +() 0-9] * $/"nó giải quyết được vấn đề của tôi. –

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