2013-03-12 24 views
7

Im sử dụng jquery đeo mặt nạ đầu vào cắm và cần phải có một trường điện thoại với các định dạng sau:jquery đầu vào đeo mặt nạ chỉ có số đầu tiên còn lại tùy chọn bắt buộc

1 (222) - 000 - 1114 

mã của tôi trông như thế này:

$("#myPhone").mask("9 (999) - 999 - 9999"); 

bây giờ tôi không thể dường như làm cho nó hoạt động để làm cho chữ số đầu tiên tùy chọn nhưng phần còn lại bắt buộc. Vì vậy, những con số sau đây là hợp lệ :

1 (222) - 000 - 1114 
    (222) - 000 - 1114 

và những con số sau đây là không hợp lệ

1 (222) - 000 - 11 
    (222) - 00 - 0011 

sử dụng "9 (999) - 999- 9999?" sẽ không làm việc vì nó làm cho toàn bộ điều tùy chọn

Nếu điều này không thể được thực hiện trong mặt nạ ai đó có thể giúp tôi với biểu thức chính quy để đạt được điều này?

+0

đầu tiên tôi sẽ kiểm tra nếu có 11 chữ số, và sau đó sử dụng một mặt nạ trong một hàm. –

Trả lời

15

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

$.mask.definitions['~'] = '([0-9])?'; 
$("#myPhone").mask("~(999) - 999 - 9999"); 
+0

hoạt động hoàn hảo, cảm ơn rất nhiều. Một vấn đề mặc dù chữ số đầu tiên không phải là chữ số nghiêm ngặt, nếu tôi gõ chữ cái nó trong thư – GGio

+1

vẫn chữ số đầu tiên chấp nhận chữ cái – GGio

+0

Đây không phải là một giải pháp tốt. Điều này khắc phục sự cố nếu bạn bắt đầu nhập vào đầu vào. Nhưng nếu bạn khôi phục dữ liệu từ cơ sở dữ liệu (ví dụ) và áp dụng mặt nạ, đầu vào của bạn sẽ trống. – MarceloBarbosa

0

Nó không phải là hoàn hảo, nhưng bạn có thể sử dụng số hoặc khoảng trắng:

$.mask.definitions['~'] = '[0-9 ]'; 
$("#myPhone").mask("~(999) - 999 - 9999"); 
Các vấn đề liên quan