2013-03-12 6 views
7

イム使用してjQueryのマスクされた入力は、プラグインと、次の形式で携帯電話のフィールドを持っている必要があります必須のみ最初の数の任意の残りの部分を持っている:jqueryのマスクされた入力は

1 (222) - 000 - 1114 

私のコードは次のようになります。

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

今私はそれがオプションの最初の数字を作るが、残りは必須であるように働くように思える。

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

と次の数字は、使用

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

無効です "9(999) - 999- 9999?"はそれ以来、動作しません。したがって、次の数字は、有効ですすべてのものをオプションにします

これをマスクすることができない場合は、誰かがこれを達成するために正規表現で私を助けますか?

+0

を機能。 –

答えて

15

これを試してみてください:

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

は完璧に働いてくれてありがとう。最初の数字は厳密に数字ではありませんが、文字を入力すると、それは文字で入力します – GGio

+1

まだ最初の数字は文字を受け入れます – GGio

+0

これは良い解決策ではありません。これは、入力の入力を開始すると問題を解決します。しかし、データベースからデータを回復してマスクを適用すると、入力は空白になります。 – MarceloBarbosa

0

それは完璧ではないですが、数や空白文字を使用することができます:私は最初の11桁があるかどうかを確認し、その後にマスクを使用することになり

$.mask.definitions['~'] = '[0-9 ]'; 
$("#myPhone").mask("~(999) - 999 - 9999"); 
関連する問題