2016-05-24 8 views
0

私はかなり古い例を見つけたが、ほとんど私が何をする必要があるかを正確にやっている: Auto Dash using Javascript on FOCUS (for a telephone number format)オートレッグ例電話番号の形式(XXX)XXX-XXXX

しかし代わりに、現在の形式のXXX-XXX-XXXXのiやってみたい(xxx)xxx-xxxx

誰かが私に以下のスクリプトを手渡せますか?

$('.telnumber').keyup(function() { 
    this.value = this.value 
     .match(/\d*/g).join('') 
     .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1).join('-') 
     .replace(/-*$/g, ''); 

    console.log("this value", this.value); 
}); 

答えて

1

あなたはこの

var a = this.value.match(/\d*/g).join('') 
     .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1); 

this.value = ['(',a[0],') ',a[1],'-',a[2]].join(''); 

ような何かを行うことができますそれは非常にエレガントではないのですが、ちょっと、優雅さは仕立屋のために右でありますか?

更新

いや、私はここで、退屈だとワンライナーを作った:

this.value = '('+this.value 
     .match(/\d*/g).join('') 
     .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1) 
     .map((a,i)=>(a+[') ','-',''][i])).join(''); 
+0

はあなたの応答のためのみんなに感謝し、これはまさに私のために働きました! – doubleya

+0

私はそれを入力した後で編集または削除できないことに気付きました。 – doubleya

0

変更するコードは.join('-')です。それが「xxx-xxx-xxxx」を取得している場所です。

0

これらの3つの正規表現をトークン化して別々に結合する必要があります。

関連する問題