2017-06-03 69 views
3

我有一個表單,可以添加郵政編碼(郵政編碼,適用於美國讀者),我想將輸入分成以下格式:XXX XXXX。如何僅使用JavaScript在輸入字段中分割數據?

我正在使用下面的JS將它分成三部分(XXX XXX XXX),但我希望它只分割前三個,然後再分割四個或更多。目前

JavaScript的使用:

var ecode = document.getElementById("postcode"); 
ecode.oninput = function(){ 
    var format = ecode.value.split(" ").join(""); 
    if (format.length > 0){ 
     format = format.match(new RegExp('.{1,3}','g')).join(" "); 
    } 
    this.value = format; 
}; 

我既是新的JavaScript和正則表達式。任何幫助是極大的讚賞。

+0

顯示HTML與ID片斷'postcode' – RomanPerekhrest

+0

嗨@RomanPerekhrest,這個問題已經解決了我,我不認爲顯示HTML片段是必要的。這只是一個標籤,帶有郵編編號。儘管感謝您的回覆。 –

回答

1

我可能會做這樣的:

var format = ecode.value.replace(/ /g, ""); 
ecode.value = format.substr(0, 3) + " " + format.substr(3, 4); 

注意這將放棄任何過去7第一個非空格字符。

+0

它的工作!非常感謝你。唯一的一點是,當我使用退格刪除它時,它只會刪除最後四個。任何想法爲什麼? –

+1

我會建議你把這段代碼放在onchange事件中。在用戶輸入時修改文本可能不太友好。 – Nicolas

+0

Perfeito!再次感謝。我用onchange代替。 –

0

您可以使用替換前三個字符。

var format = '', 
 
    i; 
 

 
for (i = 0; i < 10; i++) { 
 
    format += 'X'; 
 
    console.log(format.replace(/.../, '$& ')); 
 
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

相關問題