1

好的,我目前正在一个有商店查找器的网站上工作,商店查找器适用于城镇名称和邮政编码,但邮政编码必须在其中有一个空格。例如 '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' )">
4

2 回答 2

1

仅当输入中有数字时才进行替换。

if (/\d/.test(this.value)) {
  this.value = this.value
    .replace(/ /g,'')
    .replace( /^(.{2,4})(.{3})(.*)$/, '$1 $2' );
}

之所以有效,是因为邮政编码总是有一个数字(对吗?),但城市的名字中永远不会有数字。


但话虽如此,这似乎是一个糟糕的设计。什么样的系统足够灵活,可以通过相同的输入接受邮政编码或城市,但对数据格式有严格的限制?如果它那么严格,它应该接受谨慎输入的代码。

于 2012-11-13T00:56:26.137 回答
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' );
}" >
于 2012-11-20T02:09:36.637 回答