2016-05-24 36 views
0

我發現了一個很老的例子,但它幾乎做什麼我需要做的: Auto Dash using Javascript on FOCUS (for a telephone number format)自動註冊防爆電話號碼的格式(XXX)XXX-XXXX

但是不是目前的格式爲XXX-XXX-XXXX我'喜歡做(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個正則表達式進行標記,然後將它們分開。