次の正規表現:
x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, "-");
は、 3文字目ごとにダッシュを追加して、入力すると に123456789
変わります123-456-789
。この正規表現を使用して電話番号をフォーマットしようとしています。問題は 10 番目の文字で発生します。入力は に1234567890
変わります1-234-567-890
。
上記の正規表現をどのように変更して、10 桁の文字列を123-456-7890
. ユーザーがキーアップイベントを使用して入力しているときにこれが発生するため、この正規表現を使用します。
これを行うためのより簡単またはより良い方法を知っている場合は、私を助けてください。ユーザーが入力している間にダッシュを追加する必要があります。他の文字は許可されていません。
ノート:
- Jquery Masked 入力プラグインを使用できません (中央の文字を編集するとフォーカスが台無しになるため)