2012-06-14 26 views
5

Làm cách nào để cho phép các khoảng trống trong một số xác thực, với tối thiểu 8 chữ số? Số điện thoại dễ dàng hơn khi nhập khi khoảng trắng được cho phép. ví dụ. 0400 123 456, 9699 1234.Xác thực số điện thoại jQuery cho phép các khoảng trắng, tối thiểu 8 chữ số

Dưới đây là mã của tôi cho đến nay, tôi chỉ có 8 chữ số xác nhận làm việc tối thiểu:

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/.test(phone_number); 
    }, 
    "Please enter numbers only" 
); 
+0

Hi, Tìm thấy bài này trong khi tìm kiếm một câu trả lời cho một câu hỏi tương tự. Chưa bao giờ sử dụng addMethod để tạo quy tắc xác thực tùy chỉnh, trong đó trong luồng tài liệu, bạn có chỉ định quy tắc tùy chỉnh không? Và làm thế nào để bạn gọi nó từ phần quy tắc của hàm xác thực của bạn? – Barbs

Trả lời

4

Tháo gian trước khi xác nhận:

return this.optional(element) || /^\d{8,}$/.test(phone_number.replace(/\s/g, '')); 

Bằng cách này bạn giữ lại không gian

+0

Cảm ơn các công trình, nhưng tôi muốn tối thiểu 8 số, một số số điện thoại sẽ có 10 chữ số. Làm cách nào để đảm bảo số chữ số lớn hơn 8? – JV10

+0

@ JV10 chỉ cần thêm dấu phẩy sau '8' bên trong dấu ngoặc nhọn :), đã chỉnh sửa câu trả lời của tôi cho mỗi nhận xét của bạn –

1

Đề nghị của tôi là chỉ cần loại bỏ các khoảng trống từ phone_number trước khi xác nhận.

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/ *$/.test(phone_number.replace(/\s/g, "")); 
    }, 
    "Please enter numbers only" 
); 
+1

Tôi muốn giữ không gian như khi biểu mẫu được gửi, người nhận sẽ dễ đọc hơn. – JV10

+0

Tôi đã cập nhật cho mỗi nhận xét của bạn. –