好的,我正在开发一个有商店查找器的网站,商店查找器可以很好地处理城镇名称和邮政编码,但邮政编码必须有空格。 例如。 'RG1 7UE',如果没有空格,将无法工作。 'RG17UE'
所以我在文本框上有一些JS(见下文)来调整邮政编码上的间距,这很有效,现在唯一的问题是,如果你输入一个城镇,JS会放一个空格或盒子里的城市。有没有人知道如何解决这个问题,以便我可以为城市和邮政编码使用相同的文本输入框?
谢谢,
马丁
<input type="text" placeholder="Enter a postcode or town/city..." value="<?php echo $_POST['text'] ?>" id="address" name="text" class="locator_inputform px192 search-box" onblur="this.value = this.value.replace(/ /g,'').replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' )">
答案 0 :(得分:1)
如果输入中有数字,则只进行替换。
if (/\d/.test(this.value)) {
this.value = this.value
.replace(/ /g,'')
.replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' );
}
有效,因为邮政编码总是有一个数字(对吗?),但城市的名字中永远不会有数字。
但是那说,这似乎是一个糟糕的设计。什么样的系统足够灵活,可以通过相同的输入接受邮政编码或城市,但强制严格限制数据格式?如果它是严格的,它应该接受谨慎输入的代码。
答案 1 :(得分:0)
对于任何想要这样做的人来说,这很棒!谢谢@AlexWayne
<input type="text" placeholder="Insert Postcode or Street Name and/or Town..." value="<?php echo $_POST['text'] ?>" id="address" name="name" onblur="if (/\d/.test(this.value)) {
this.value = this.value
.replace(/ /g,'')
.replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' );
}" >