2017-06-03 33 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; }

相关问题